aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Land/LandObject.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs41
1 files changed, 37 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index cc42f7f..640a024 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -169,6 +169,11 @@ namespace OpenSim.Region.CoreModules.World.Land
169 return newLand; 169 return newLand;
170 } 170 }
171 171
172 public ILandObject MemberwiseCopy()
173 {
174 return (ILandObject)this.MemberwiseClone();
175 }
176
172 static overrideParcelMaxPrimCountDelegate overrideParcelMaxPrimCount; 177 static overrideParcelMaxPrimCountDelegate overrideParcelMaxPrimCount;
173 static overrideSimulatorMaxPrimCountDelegate overrideSimulatorMaxPrimCount; 178 static overrideSimulatorMaxPrimCountDelegate overrideSimulatorMaxPrimCount;
174 179
@@ -242,11 +247,13 @@ namespace OpenSim.Region.CoreModules.World.Land
242 m_lastSeqId = seq_id; 247 m_lastSeqId = seq_id;
243 } 248 }
244 249
250 ILandObject landToSend = this;
251 m_scene.Permissions.LandObjectForClient(remote_client.AgentId, (ILandObject)this, out landToSend);
245 remote_client.SendLandProperties(seq_id, 252 remote_client.SendLandProperties(seq_id,
246 snap_selection, request_result, this, 253 snap_selection, request_result, landToSend,
247 (float)m_scene.RegionInfo.RegionSettings.ObjectBonus, 254 (float)m_scene.RegionInfo.RegionSettings.ObjectBonus,
248 GetParcelMaxPrimCount(), 255 GetParcelMaxPrimCount(),
249 GetSimulatorMaxPrimCount(), regionFlags); 256 GetSimulatorMaxPrimCount(), regionFlags);
250 } 257 }
251 258
252 public void UpdateLandProperties(LandUpdateArgs args, IClientAPI remote_client) 259 public void UpdateLandProperties(LandUpdateArgs args, IClientAPI remote_client)
@@ -475,6 +482,32 @@ namespace OpenSim.Region.CoreModules.World.Land
475 return false; 482 return false;
476 } 483 }
477 484
485 public bool IsAllowedInLand(UUID avatar)
486 {
487 ExpireAccessList();
488
489 if (m_scene.Permissions.IsAdministrator(avatar))
490 return true;
491
492 if (m_scene.RegionInfo.EstateSettings.IsEstateManager(avatar))
493 return true;
494
495 if (avatar == LandData.OwnerID)
496 return true;
497
498 if (LandData.ParcelAccessList.FindIndex(
499 delegate(LandAccessEntry e)
500 {
501 if (e.AgentID == avatar && e.Flags == AccessList.Access)
502 return true;
503 return false;
504 }) != -1)
505 {
506 return true;
507 }
508 return false;
509 }
510
478 public void SendLandUpdateToClient(IClientAPI remote_client) 511 public void SendLandUpdateToClient(IClientAPI remote_client)
479 { 512 {
480 SendLandProperties(0, false, 0, remote_client); 513 SendLandProperties(0, false, 0, remote_client);