aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-04-05 21:25:54 +0100
committerJustin Clark-Casey (justincc)2011-04-05 21:25:54 +0100
commit0e465da187c93e7ff21f91742f75ee9f3b76b04e (patch)
tree0d7fdd229ad942886257d48723b25cf488695f70 /OpenSim/Region
parentreplace magic numbers in llGetParcelPrimCount() with constants (diff)
downloadopensim-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')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandChannel.cs10
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs39
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs83
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs14
-rw-r--r--OpenSim/Region/RegionCombinerModule/RegionCombinerLargeLandChannel.cs5
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();