diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Land/LandObject.cs | 83 |
1 files changed, 16 insertions, 67 deletions
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 | } |