diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/InnerScene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/InnerScene.cs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 84de71f..d6e905b 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -846,6 +846,37 @@ namespace OpenSim.Region.Environment.Scenes | |||
846 | return result; | 846 | return result; |
847 | } | 847 | } |
848 | 848 | ||
849 | public Dictionary<uint, float> GetTopScripts() | ||
850 | { | ||
851 | Dictionary<uint, float> topScripts = new Dictionary<uint, float>(); | ||
852 | |||
853 | List<EntityBase> EntityList = GetEntities(); | ||
854 | int limit = 0; | ||
855 | foreach (EntityBase ent in EntityList) | ||
856 | { | ||
857 | if (ent is SceneObjectGroup) | ||
858 | { | ||
859 | SceneObjectGroup grp = (SceneObjectGroup)ent; | ||
860 | if ((grp.RootPart.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Scripted) != 0) | ||
861 | { | ||
862 | if (grp.scriptScore >= 0.01) | ||
863 | { | ||
864 | topScripts.Add(grp.LocalId, grp.scriptScore); | ||
865 | limit++; | ||
866 | if (limit >= 100) | ||
867 | { | ||
868 | break; | ||
869 | } | ||
870 | |||
871 | } | ||
872 | grp.scriptScore = 0; | ||
873 | } | ||
874 | } | ||
875 | } | ||
876 | |||
877 | return topScripts; | ||
878 | } | ||
879 | |||
849 | #endregion | 880 | #endregion |
850 | 881 | ||
851 | #region Other Methods | 882 | #region Other Methods |