diff options
author | mingchen | 2008-06-11 17:31:43 +0000 |
---|---|---|
committer | mingchen | 2008-06-11 17:31:43 +0000 |
commit | 0896cb53d4bb9ffb4492a1a5dfdc2749d9117abb (patch) | |
tree | 644718e985b16ae25ea9b1779444ebf80c64ceb9 /OpenSim/Region/Environment/Modules | |
parent | Mantis#1514. Thank you kindly, Boscata for an InventoryServer patch (diff) | |
download | opensim-SC-0896cb53d4bb9ffb4492a1a5dfdc2749d9117abb.zip opensim-SC-0896cb53d4bb9ffb4492a1a5dfdc2749d9117abb.tar.gz opensim-SC-0896cb53d4bb9ffb4492a1a5dfdc2749d9117abb.tar.bz2 opensim-SC-0896cb53d4bb9ffb4492a1a5dfdc2749d9117abb.tar.xz |
*Parcel Prim Count Maximums moved to their own functions so modules can override the default method of calculating how many prims a parcel can have.
Diffstat (limited to 'OpenSim/Region/Environment/Modules')
4 files changed, 69 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs b/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs index 0b77b23..b83de23 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandChannel.cs | |||
@@ -149,6 +149,22 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
149 | m_landManagementModule.ReturnObjectsInParcel(localID, returnType, agentIDs, taskIDs, remoteClient); | 149 | m_landManagementModule.ReturnObjectsInParcel(localID, returnType, agentIDs, taskIDs, remoteClient); |
150 | } | 150 | } |
151 | } | 151 | } |
152 | |||
153 | public void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel) | ||
154 | { | ||
155 | if (m_landManagementModule != null) | ||
156 | { | ||
157 | m_landManagementModule.setParcelObjectMaxOverride(overrideDel); | ||
158 | } | ||
159 | } | ||
160 | |||
161 | public void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel) | ||
162 | { | ||
163 | if (m_landManagementModule != null) | ||
164 | { | ||
165 | m_landManagementModule.setSimulatorObjectMaxOverride(overrideDel); | ||
166 | } | ||
167 | } | ||
152 | #endregion | 168 | #endregion |
153 | 169 | ||
154 | } | 170 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs index 1c04796..984bc4e 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs | |||
@@ -585,7 +585,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
585 | ResetAllLandPrimCounts(); | 585 | ResetAllLandPrimCounts(); |
586 | lock (m_scene.Entities) | 586 | lock (m_scene.Entities) |
587 | { | 587 | { |
588 | foreach (EntityBase obj in m_scene.Entities.Values) | 588 | foreach (EntityBase obj in m_scene.Entities.Values) |
589 | { | 589 | { |
590 | if (obj != null) | 590 | if (obj != null) |
591 | { | 591 | { |
@@ -1048,6 +1048,16 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1048 | 1048 | ||
1049 | #endregion | 1049 | #endregion |
1050 | 1050 | ||
1051 | public void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel) | ||
1052 | { | ||
1053 | foreach (LandObject obj in landList.Values) | ||
1054 | { | ||
1055 | obj.setParcelObjectMaxOverride(overrideDel); | ||
1056 | } | ||
1057 | } | ||
1058 | public void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel) | ||
1059 | { | ||
1060 | } | ||
1051 | } | 1061 | } |
1052 | 1062 | ||
1053 | } \ No newline at end of file | 1063 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs index f5b1a1d..2ff48cc 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs | |||
@@ -116,13 +116,52 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
116 | return newLand; | 116 | return newLand; |
117 | } | 117 | } |
118 | 118 | ||
119 | #endregion | 119 | |
120 | static overrideParcelMaxPrimCountDelegate overrideParcelMaxPrimCount; | ||
121 | static overrideSimulatorMaxPrimCountDelegate overrideSimulatorMaxPrimCount; | ||
122 | |||
123 | public void setParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel) | ||
124 | { | ||
125 | overrideParcelMaxPrimCount = overrideDel; | ||
126 | } | ||
127 | public void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel) | ||
128 | { | ||
129 | overrideSimulatorMaxPrimCount = overrideDel; | ||
130 | } | ||
120 | 131 | ||
132 | public int getParcelMaxPrimCount(ILandObject thisObject) | ||
133 | { | ||
134 | if (overrideParcelMaxPrimCount != null) | ||
135 | { | ||
136 | return overrideParcelMaxPrimCount(thisObject); | ||
137 | } | ||
138 | else | ||
139 | { | ||
140 | //Normal Calculations | ||
141 | return Convert.ToInt32( | ||
142 | Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity * | ||
143 | Convert.ToDecimal(m_scene.RegionInfo.EstateSettings.objectBonusFactor))); ; | ||
144 | } | ||
145 | } | ||
146 | public int getSimulatorMaxPrimCount(ILandObject thisObject) | ||
147 | { | ||
148 | if (overrideSimulatorMaxPrimCount != null) | ||
149 | { | ||
150 | return overrideSimulatorMaxPrimCount(thisObject); | ||
151 | } | ||
152 | else | ||
153 | { | ||
154 | //Normal Calculations | ||
155 | return m_scene.objectCapacity; | ||
156 | } | ||
157 | } | ||
158 | #endregion | ||
159 | |||
121 | #region Packet Request Handling | 160 | #region Packet Request Handling |
122 | 161 | ||
123 | public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) | 162 | public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) |
124 | { | 163 | { |
125 | remote_client.sendLandProperties(remote_client, sequence_id, snap_selection, request_result, landData, m_scene.RegionInfo.EstateSettings.objectBonusFactor, m_scene.objectCapacity,(uint) m_scene.RegionInfo.EstateSettings.regionFlags); | 164 | remote_client.sendLandProperties(remote_client, sequence_id, snap_selection, request_result, landData, m_scene.RegionInfo.EstateSettings.objectBonusFactor, getParcelMaxPrimCount(this), getSimulatorMaxPrimCount(this), (uint)m_scene.RegionInfo.EstateSettings.regionFlags); |
126 | } | 165 | } |
127 | 166 | ||
128 | public void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client) | 167 | public void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client) |
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index b8ca482..a64d857 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | |||
@@ -748,7 +748,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
748 | { | 748 | { |
749 | } | 749 | } |
750 | 750 | ||
751 | public void sendLandProperties(IClientAPI remote_client, int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int simObjectCapacity, uint regionFlags) | 751 | public void sendLandProperties(IClientAPI remote_client, int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor,int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) |
752 | { | 752 | { |
753 | } | 753 | } |
754 | public void sendLandAccessListData(List<LLUUID> avatars, uint accessFlag, int localLandID) | 754 | public void sendLandAccessListData(List<LLUUID> avatars, uint accessFlag, int localLandID) |