diff options
author | Justin Clark-Casey (justincc) | 2011-04-05 21:25:54 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-04-05 21:25:54 +0100 |
commit | 0e465da187c93e7ff21f91742f75ee9f3b76b04e (patch) | |
tree | 0d7fdd229ad942886257d48723b25cf488695f70 /OpenSim/Region | |
parent | replace magic numbers in llGetParcelPrimCount() with constants (diff) | |
download | opensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.zip opensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.tar.gz opensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.tar.bz2 opensim-SC_OLD-0e465da187c93e7ff21f91742f75ee9f3b76b04e.tar.xz |
remove now unused individual LandData prim counts.
However, the calls to the land management module to record prims need to remain, since they were also being used to return owner object lists, etc.
This is probably why prim counts were being done there in the first place.
Diffstat (limited to 'OpenSim/Region')
5 files changed, 27 insertions, 124 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs index 7d990c2..7fc358d 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandChannel.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandChannel.cs | |||
@@ -133,16 +133,6 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
133 | return new List<ILandObject>(); | 133 | return new List<ILandObject>(); |
134 | } | 134 | } |
135 | 135 | ||
136 | public bool IsLandPrimCountTainted() | ||
137 | { | ||
138 | if (m_landManagementModule != null) | ||
139 | { | ||
140 | return m_landManagementModule.IsLandPrimCountTainted(); | ||
141 | } | ||
142 | |||
143 | return false; | ||
144 | } | ||
145 | |||
146 | public bool IsForcefulBansAllowed() | 136 | public bool IsForcefulBansAllowed() |
147 | { | 137 | { |
148 | if (m_landManagementModule != null) | 138 | if (m_landManagementModule != null) |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 2b5f7a0..adfac05 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | |||
@@ -89,7 +89,6 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
89 | /// </value> | 89 | /// </value> |
90 | private readonly Dictionary<int, ILandObject> m_landList = new Dictionary<int, ILandObject>(); | 90 | private readonly Dictionary<int, ILandObject> m_landList = new Dictionary<int, ILandObject>(); |
91 | 91 | ||
92 | private bool m_landPrimCountTainted; | ||
93 | private int m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1; | 92 | private int m_lastLandLocalID = LandChannel.START_LAND_LOCAL_ID - 1; |
94 | 93 | ||
95 | private bool m_allowedForcefulBans = true; | 94 | private bool m_allowedForcefulBans = true; |
@@ -122,18 +121,18 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
122 | 121 | ||
123 | m_scene.EventManager.OnParcelPrimCountAdd += EventManagerOnParcelPrimCountAdd; | 122 | m_scene.EventManager.OnParcelPrimCountAdd += EventManagerOnParcelPrimCountAdd; |
124 | m_scene.EventManager.OnParcelPrimCountUpdate += EventManagerOnParcelPrimCountUpdate; | 123 | m_scene.EventManager.OnParcelPrimCountUpdate += EventManagerOnParcelPrimCountUpdate; |
124 | m_scene.EventManager.OnObjectBeingRemovedFromScene += EventManagerOnObjectBeingRemovedFromScene; | ||
125 | m_scene.EventManager.OnRequestParcelPrimCountUpdate += EventManagerOnRequestParcelPrimCountUpdate; | ||
126 | |||
125 | m_scene.EventManager.OnAvatarEnteringNewParcel += EventManagerOnAvatarEnteringNewParcel; | 127 | m_scene.EventManager.OnAvatarEnteringNewParcel += EventManagerOnAvatarEnteringNewParcel; |
126 | m_scene.EventManager.OnClientMovement += EventManagerOnClientMovement; | 128 | m_scene.EventManager.OnClientMovement += EventManagerOnClientMovement; |
127 | m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy; | 129 | m_scene.EventManager.OnValidateLandBuy += EventManagerOnValidateLandBuy; |
128 | m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy; | 130 | m_scene.EventManager.OnLandBuy += EventManagerOnLandBuy; |
129 | m_scene.EventManager.OnNewClient += EventManagerOnNewClient; | 131 | m_scene.EventManager.OnNewClient += EventManagerOnNewClient; |
130 | m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement; | 132 | m_scene.EventManager.OnSignificantClientMovement += EventManagerOnSignificantClientMovement; |
131 | m_scene.EventManager.OnObjectBeingRemovedFromScene += EventManagerOnObjectBeingRemovedFromScene; | ||
132 | m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage; | 133 | m_scene.EventManager.OnNoticeNoLandDataFromStorage += EventManagerOnNoLandDataFromStorage; |
133 | m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage; | 134 | m_scene.EventManager.OnIncomingLandDataFromStorage += EventManagerOnIncomingLandDataFromStorage; |
134 | m_scene.EventManager.OnSetAllowForcefulBan += EventManagerOnSetAllowedForcefulBan; | 135 | m_scene.EventManager.OnSetAllowForcefulBan += EventManagerOnSetAllowedForcefulBan; |
135 | m_scene.EventManager.OnRequestParcelPrimCountUpdate += EventManagerOnRequestParcelPrimCountUpdate; | ||
136 | m_scene.EventManager.OnParcelPrimCountTainted += EventManagerOnParcelPrimCountTainted; | ||
137 | m_scene.EventManager.OnRegisterCaps += EventManagerOnRegisterCaps; | 136 | m_scene.EventManager.OnRegisterCaps += EventManagerOnRegisterCaps; |
138 | m_scene.EventManager.OnPluginConsole += EventManagerOnPluginConsole; | 137 | m_scene.EventManager.OnPluginConsole += EventManagerOnPluginConsole; |
139 | 138 | ||
@@ -779,34 +778,24 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
779 | 778 | ||
780 | #region Parcel Modification | 779 | #region Parcel Modification |
781 | 780 | ||
782 | public void ResetAllLandPrimCounts() | 781 | public void ResetOverMeRecord() |
783 | { | 782 | { |
784 | lock (m_landList) | 783 | lock (m_landList) |
785 | { | 784 | { |
786 | foreach (LandObject p in m_landList.Values) | 785 | foreach (LandObject p in m_landList.Values) |
787 | { | 786 | { |
788 | p.ResetLandPrimCounts(); | 787 | p.ResetOverMeRecord(); |
789 | } | 788 | } |
790 | } | 789 | } |
791 | } | 790 | } |
792 | 791 | ||
793 | public void EventManagerOnParcelPrimCountTainted() | ||
794 | { | ||
795 | m_landPrimCountTainted = true; | ||
796 | } | ||
797 | |||
798 | public bool IsLandPrimCountTainted() | ||
799 | { | ||
800 | return m_landPrimCountTainted; | ||
801 | } | ||
802 | |||
803 | public void EventManagerOnParcelPrimCountAdd(SceneObjectGroup obj) | 792 | public void EventManagerOnParcelPrimCountAdd(SceneObjectGroup obj) |
804 | { | 793 | { |
805 | Vector3 position = obj.AbsolutePosition; | 794 | Vector3 position = obj.AbsolutePosition; |
806 | ILandObject landUnderPrim = GetLandObject(position.X, position.Y); | 795 | ILandObject landUnderPrim = GetLandObject(position.X, position.Y); |
807 | if (landUnderPrim != null) | 796 | if (landUnderPrim != null) |
808 | { | 797 | { |
809 | ((LandObject)landUnderPrim).AddPrimToCount(obj); | 798 | ((LandObject)landUnderPrim).AddPrimOverMe(obj); |
810 | } | 799 | } |
811 | } | 800 | } |
812 | 801 | ||
@@ -816,7 +805,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
816 | { | 805 | { |
817 | foreach (LandObject p in m_landList.Values) | 806 | foreach (LandObject p in m_landList.Values) |
818 | { | 807 | { |
819 | p.RemovePrimFromCount(obj); | 808 | p.RemovePrimFromOverMe(obj); |
820 | } | 809 | } |
821 | } | 810 | } |
822 | } | 811 | } |
@@ -849,8 +838,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
849 | foreach (LandObject p in landOwnersAndParcels[owner]) | 838 | foreach (LandObject p in landOwnersAndParcels[owner]) |
850 | { | 839 | { |
851 | simArea += p.LandData.Area; | 840 | simArea += p.LandData.Area; |
852 | simPrims += p.LandData.OwnerPrims + p.LandData.OtherPrims + p.LandData.GroupPrims + | 841 | simPrims += p.PrimCounts.Total; |
853 | p.LandData.SelectedPrims; | ||
854 | } | 842 | } |
855 | 843 | ||
856 | foreach (LandObject p in landOwnersAndParcels[owner]) | 844 | foreach (LandObject p in landOwnersAndParcels[owner]) |
@@ -867,7 +855,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
867 | // "[LAND MANAGEMENT MODULE]: Triggered EventManagerOnParcelPrimCountUpdate() for {0}", | 855 | // "[LAND MANAGEMENT MODULE]: Triggered EventManagerOnParcelPrimCountUpdate() for {0}", |
868 | // m_scene.RegionInfo.RegionName); | 856 | // m_scene.RegionInfo.RegionName); |
869 | 857 | ||
870 | ResetAllLandPrimCounts(); | 858 | ResetOverMeRecord(); |
871 | EntityBase[] entities = m_scene.Entities.GetEntities(); | 859 | EntityBase[] entities = m_scene.Entities.GetEntities(); |
872 | foreach (EntityBase obj in entities) | 860 | foreach (EntityBase obj in entities) |
873 | { | 861 | { |
@@ -880,15 +868,13 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
880 | } | 868 | } |
881 | } | 869 | } |
882 | FinalizeLandPrimCountUpdate(); | 870 | FinalizeLandPrimCountUpdate(); |
883 | m_landPrimCountTainted = false; | ||
884 | } | 871 | } |
885 | 872 | ||
886 | public void EventManagerOnRequestParcelPrimCountUpdate() | 873 | public void EventManagerOnRequestParcelPrimCountUpdate() |
887 | { | 874 | { |
888 | ResetAllLandPrimCounts(); | 875 | ResetOverMeRecord(); |
889 | m_scene.EventManager.TriggerParcelPrimCountUpdate(); | 876 | m_scene.EventManager.TriggerParcelPrimCountUpdate(); |
890 | FinalizeLandPrimCountUpdate(); | 877 | FinalizeLandPrimCountUpdate(); |
891 | m_landPrimCountTainted = false; | ||
892 | } | 878 | } |
893 | 879 | ||
894 | /// <summary> | 880 | /// <summary> |
@@ -952,8 +938,6 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
952 | m_landList[startLandObjectIndex].ForceUpdateLandInfo(); | 938 | m_landList[startLandObjectIndex].ForceUpdateLandInfo(); |
953 | } | 939 | } |
954 | 940 | ||
955 | EventManagerOnParcelPrimCountTainted(); | ||
956 | |||
957 | //Now add the new land object | 941 | //Now add the new land object |
958 | ILandObject result = AddLandObject(newLand); | 942 | ILandObject result = AddLandObject(newLand); |
959 | UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData); | 943 | UpdateLandObject(startLandObject.LandData.LocalID, startLandObject.LandData); |
@@ -1020,7 +1004,6 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1020 | performFinalLandJoin(masterLandObject, slaveLandObject); | 1004 | performFinalLandJoin(masterLandObject, slaveLandObject); |
1021 | } | 1005 | } |
1022 | } | 1006 | } |
1023 | EventManagerOnParcelPrimCountTainted(); | ||
1024 | 1007 | ||
1025 | masterLandObject.SendLandUpdateToAvatarsOverMe(); | 1008 | masterLandObject.SendLandUpdateToAvatarsOverMe(); |
1026 | } | 1009 | } |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index e7bdb19..9803bdf 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs | |||
@@ -64,8 +64,6 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
64 | 64 | ||
65 | #endregion | 65 | #endregion |
66 | 66 | ||
67 | #region ILandObject Members | ||
68 | |||
69 | public int GetPrimsFree() | 67 | public int GetPrimsFree() |
70 | { | 68 | { |
71 | m_scene.EventManager.TriggerParcelPrimCountUpdate(); | 69 | m_scene.EventManager.TriggerParcelPrimCountUpdate(); |
@@ -213,6 +211,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
213 | return simMax; | 211 | return simMax; |
214 | } | 212 | } |
215 | } | 213 | } |
214 | |||
216 | #endregion | 215 | #endregion |
217 | 216 | ||
218 | #region Packet Request Handling | 217 | #region Packet Request Handling |
@@ -909,9 +908,12 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
909 | 908 | ||
910 | lock (primsOverMe) | 909 | lock (primsOverMe) |
911 | { | 910 | { |
911 | // m_log.DebugFormat( | ||
912 | // "[LAND OBJECT]: Request for SendLandObjectOwners() from {0} with {1} known prims on region", | ||
913 | // remote_client.Name, primsOverMe.Count); | ||
914 | |||
912 | try | 915 | try |
913 | { | 916 | { |
914 | |||
915 | foreach (SceneObjectGroup obj in primsOverMe) | 917 | foreach (SceneObjectGroup obj in primsOverMe) |
916 | { | 918 | { |
917 | try | 919 | try |
@@ -950,6 +952,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
950 | public Dictionary<UUID, int> GetLandObjectOwners() | 952 | public Dictionary<UUID, int> GetLandObjectOwners() |
951 | { | 953 | { |
952 | Dictionary<UUID, int> ownersAndCount = new Dictionary<UUID, int>(); | 954 | Dictionary<UUID, int> ownersAndCount = new Dictionary<UUID, int>(); |
955 | |||
953 | lock (primsOverMe) | 956 | lock (primsOverMe) |
954 | { | 957 | { |
955 | try | 958 | try |
@@ -986,8 +989,10 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
986 | 989 | ||
987 | public void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client) | 990 | public void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client) |
988 | { | 991 | { |
989 | Dictionary<UUID,List<SceneObjectGroup>> returns = | 992 | // m_log.DebugFormat( |
990 | new Dictionary<UUID,List<SceneObjectGroup>>(); | 993 | // "[LAND OBJECT]: Request to return objects in {0} from {1}", LandData.Name, remote_client.Name); |
994 | |||
995 | Dictionary<UUID,List<SceneObjectGroup>> returns = new Dictionary<UUID,List<SceneObjectGroup>>(); | ||
991 | 996 | ||
992 | lock (primsOverMe) | 997 | lock (primsOverMe) |
993 | { | 998 | { |
@@ -1060,83 +1065,25 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1060 | 1065 | ||
1061 | #region Object Adding/Removing from Parcel | 1066 | #region Object Adding/Removing from Parcel |
1062 | 1067 | ||
1063 | public void ResetLandPrimCounts() | 1068 | public void ResetOverMeRecord() |
1064 | { | 1069 | { |
1065 | LandData.GroupPrims = 0; | ||
1066 | LandData.OwnerPrims = 0; | ||
1067 | LandData.OtherPrims = 0; | ||
1068 | LandData.SelectedPrims = 0; | ||
1069 | |||
1070 | |||
1071 | lock (primsOverMe) | 1070 | lock (primsOverMe) |
1072 | primsOverMe.Clear(); | 1071 | primsOverMe.Clear(); |
1073 | } | 1072 | } |
1074 | 1073 | ||
1075 | public void AddPrimToCount(SceneObjectGroup obj) | 1074 | public void AddPrimOverMe(SceneObjectGroup obj) |
1076 | { | 1075 | { |
1077 | |||
1078 | UUID prim_owner = obj.OwnerID; | ||
1079 | int prim_count = obj.PrimCount; | ||
1080 | |||
1081 | if (obj.IsSelected) | ||
1082 | { | ||
1083 | LandData.SelectedPrims += prim_count; | ||
1084 | } | ||
1085 | else | ||
1086 | { | ||
1087 | if (prim_owner == LandData.OwnerID) | ||
1088 | { | ||
1089 | LandData.OwnerPrims += prim_count; | ||
1090 | } | ||
1091 | else if ((obj.GroupID == LandData.GroupID || | ||
1092 | prim_owner == LandData.GroupID) && | ||
1093 | LandData.GroupID != UUID.Zero) | ||
1094 | { | ||
1095 | LandData.GroupPrims += prim_count; | ||
1096 | } | ||
1097 | else | ||
1098 | { | ||
1099 | LandData.OtherPrims += prim_count; | ||
1100 | } | ||
1101 | } | ||
1102 | |||
1103 | lock (primsOverMe) | 1076 | lock (primsOverMe) |
1104 | primsOverMe.Add(obj); | 1077 | primsOverMe.Add(obj); |
1105 | } | 1078 | } |
1106 | 1079 | ||
1107 | public void RemovePrimFromCount(SceneObjectGroup obj) | 1080 | public void RemovePrimFromOverMe(SceneObjectGroup obj) |
1108 | { | 1081 | { |
1109 | lock (primsOverMe) | 1082 | lock (primsOverMe) |
1110 | { | 1083 | primsOverMe.Remove(obj); |
1111 | if (primsOverMe.Contains(obj)) | ||
1112 | { | ||
1113 | UUID prim_owner = obj.OwnerID; | ||
1114 | int prim_count = obj.PrimCount; | ||
1115 | |||
1116 | if (prim_owner == LandData.OwnerID) | ||
1117 | { | ||
1118 | LandData.OwnerPrims -= prim_count; | ||
1119 | } | ||
1120 | else if (obj.GroupID == LandData.GroupID || | ||
1121 | prim_owner == LandData.GroupID) | ||
1122 | { | ||
1123 | LandData.GroupPrims -= prim_count; | ||
1124 | } | ||
1125 | else | ||
1126 | { | ||
1127 | LandData.OtherPrims -= prim_count; | ||
1128 | } | ||
1129 | |||
1130 | primsOverMe.Remove(obj); | ||
1131 | } | ||
1132 | } | ||
1133 | } | 1084 | } |
1134 | 1085 | ||
1135 | #endregion | 1086 | #endregion |
1136 | |||
1137 | #endregion | ||
1138 | |||
1139 | #endregion | ||
1140 | 1087 | ||
1141 | /// <summary> | 1088 | /// <summary> |
1142 | /// Set the media url for this land parcel | 1089 | /// Set the media url for this land parcel |
@@ -1157,5 +1104,7 @@ namespace OpenSim.Region.CoreModules.World.Land | |||
1157 | LandData.MusicURL = url; | 1104 | LandData.MusicURL = url; |
1158 | SendLandUpdateToAvatarsOverMe(); | 1105 | SendLandUpdateToAvatarsOverMe(); |
1159 | } | 1106 | } |
1107 | |||
1108 | #endregion | ||
1160 | } | 1109 | } |
1161 | } | 1110 | } |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 35a798e..a62d6d7 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1428,20 +1428,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1428 | } | 1428 | } |
1429 | 1429 | ||
1430 | /// <summary> | 1430 | /// <summary> |
1431 | /// Recount SceneObjectPart in parcel aabb | ||
1432 | /// </summary> | ||
1433 | private void UpdateLand() | ||
1434 | { | ||
1435 | if (LandChannel != null) | ||
1436 | { | ||
1437 | if (LandChannel.IsLandPrimCountTainted()) | ||
1438 | { | ||
1439 | EventManager.TriggerParcelPrimCountUpdate(); | ||
1440 | } | ||
1441 | } | ||
1442 | } | ||
1443 | |||
1444 | /// <summary> | ||
1445 | /// Update the terrain if it needs to be updated. | 1431 | /// Update the terrain if it needs to be updated. |
1446 | /// </summary> | 1432 | /// </summary> |
1447 | private void UpdateTerrain() | 1433 | private void UpdateTerrain() |
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs index 98e5453..a133e51 100644 --- a/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs +++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs | |||
@@ -130,11 +130,6 @@ public class RegionCombinerLargeLandChannel : ILandChannel | |||
130 | } | 130 | } |
131 | } | 131 | } |
132 | 132 | ||
133 | public bool IsLandPrimCountTainted() | ||
134 | { | ||
135 | return RootRegionLandChannel.IsLandPrimCountTainted(); | ||
136 | } | ||
137 | |||
138 | public bool IsForcefulBansAllowed() | 133 | public bool IsForcefulBansAllowed() |
139 | { | 134 | { |
140 | return RootRegionLandChannel.IsForcefulBansAllowed(); | 135 | return RootRegionLandChannel.IsForcefulBansAllowed(); |