aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs132
1 files changed, 71 insertions, 61 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
index 9ef3e10..15141e5 100644
--- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
@@ -37,7 +37,7 @@ using OpenSim.Region.Environment.Scenes;
37 37
38namespace OpenSim.Region.Environment.Modules.World.Estate 38namespace OpenSim.Region.Environment.Modules.World.Estate
39{ 39{
40 public class EstateManagementModule : IRegionModule 40 public class EstateManagementModule : IEstateModule
41 { 41 {
42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
43 43
@@ -57,50 +57,46 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
57 private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor, 57 private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor,
58 int matureLevel, bool restrictPushObject, bool allowParcelChanges) 58 int matureLevel, bool restrictPushObject, bool allowParcelChanges)
59 { 59 {
60 m_scene.RegionInfo.EstateSettings.regionFlags = Simulator.RegionFlags.None;
61
62 if (blockTerraform) 60 if (blockTerraform)
63 { 61 m_scene.RegionInfo.RegionSettings.BlockTerraform = true;
64 m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | 62 else
65 Simulator.RegionFlags.BlockTerraform; 63 m_scene.RegionInfo.RegionSettings.BlockTerraform = false;
66 }
67 64
68 if (noFly) 65 if (noFly)
69 { 66 m_scene.RegionInfo.RegionSettings.BlockFly = true;
70 m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | 67 else
71 Simulator.RegionFlags.NoFly; 68 m_scene.RegionInfo.RegionSettings.BlockFly = false;
72 }
73 69
74 if (allowDamage) 70 if (allowDamage)
75 { 71 m_scene.RegionInfo.RegionSettings.AllowDamage = true;
76 m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | 72 else
77 Simulator.RegionFlags.AllowDamage; 73 m_scene.RegionInfo.RegionSettings.AllowDamage = false;
78 }
79 74
80 if (blockLandResell) 75 if (blockLandResell)
81 { 76 m_scene.RegionInfo.RegionSettings.AllowLandResell = false;
82 m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | 77 else
83 Simulator.RegionFlags.BlockLandResell; 78 m_scene.RegionInfo.RegionSettings.AllowLandResell = true;
84 }
85
86 m_scene.RegionInfo.EstateSettings.maxAgents = (byte) maxAgents;
87 79
88 m_scene.RegionInfo.EstateSettings.objectBonusFactor = objectBonusFactor; 80 m_scene.RegionInfo.RegionSettings.AgentLimit = (byte) maxAgents;
89 81
90 m_scene.RegionInfo.EstateSettings.simAccess = (Simulator.SimAccess) matureLevel; 82 m_scene.RegionInfo.RegionSettings.ObjectBonus = objectBonusFactor;
91 83
84 if(matureLevel <= 13)
85 m_scene.RegionInfo.RegionSettings.Maturity = 0;
86 else
87 m_scene.RegionInfo.RegionSettings.Maturity = 1;
92 88
93 if (restrictPushObject) 89 if (restrictPushObject)
94 { 90 m_scene.RegionInfo.RegionSettings.RestrictPushing = true;
95 m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | 91 else
96 Simulator.RegionFlags.RestrictPushObject; 92 m_scene.RegionInfo.RegionSettings.RestrictPushing = false;
97 }
98 93
99 if (allowParcelChanges) 94 if (allowParcelChanges)
100 { 95 m_scene.RegionInfo.RegionSettings.AllowLandJoinDivide = true;
101 m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | 96 else
102 Simulator.RegionFlags.AllowParcelChanges; 97 m_scene.RegionInfo.RegionSettings.AllowLandJoinDivide = false;
103 } 98
99 m_scene.RegionInfo.RegionSettings.Save();
104 100
105 sendRegionInfoPacketToAll(); 101 sendRegionInfoPacketToAll();
106 } 102 }
@@ -175,19 +171,20 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
175 bool UseFixedSun, float SunHour) 171 bool UseFixedSun, float SunHour)
176 { 172 {
177 // Water Height 173 // Water Height
178 m_scene.RegionInfo.EstateSettings.waterHeight = WaterHeight; 174 m_scene.RegionInfo.RegionSettings.WaterHeight = WaterHeight;
179 175
180 // Terraforming limits 176 // Terraforming limits
181 m_scene.RegionInfo.EstateSettings.terrainRaiseLimit = TerrainRaiseLimit; 177 m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit = TerrainRaiseLimit;
182 m_scene.RegionInfo.EstateSettings.terrainLowerLimit = TerrainLowerLimit; 178 m_scene.RegionInfo.RegionSettings.TerrainLowerLimit = TerrainLowerLimit;
183 179
184 // Time of day / fixed sun 180 // Time of day / fixed sun
185 m_scene.RegionInfo.EstateSettings.useFixedSun = UseFixedSun; 181 m_scene.RegionInfo.RegionSettings.FixedSun = UseFixedSun;
186 m_scene.RegionInfo.EstateSettings.sunHour = SunHour; 182 m_scene.RegionInfo.EstateSettings.sunHour = SunHour;
187 m_scene.EventManager.TriggerEstateToolsTimeUpdate(m_scene.RegionInfo.RegionHandle, UseFixedSun, UseFixedSun, SunHour); 183 m_scene.EventManager.TriggerEstateToolsTimeUpdate(m_scene.RegionInfo.RegionHandle, UseFixedSun, UseFixedSun, SunHour);
188 //m_log.Debug("[ESTATE]: UFS: " + UseFixedSun.ToString()); 184 //m_log.Debug("[ESTATE]: UFS: " + UseFixedSun.ToString());
189 //m_log.Debug("[ESTATE]: SunHour: " + SunHour.ToString()); 185 //m_log.Debug("[ESTATE]: SunHour: " + SunHour.ToString());
190 sendRegionInfoPacketToAll(); 186 sendRegionInfoPacketToAll();
187 m_scene.RegionInfo.RegionSettings.Save();
191 } 188 }
192 189
193 private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds) 190 private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
@@ -339,23 +336,22 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
339 private void handleEstateDebugRegionRequest(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, bool scripted, bool collisionEvents, bool physics) 336 private void handleEstateDebugRegionRequest(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, bool scripted, bool collisionEvents, bool physics)
340 { 337 {
341 if (physics) 338 if (physics)
342 { 339 m_scene.RegionInfo.RegionSettings.DisablePhysics = true;
343 m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipPhysics;
344 }
345 else 340 else
346 { 341 m_scene.RegionInfo.RegionSettings.DisablePhysics = false;
347 m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipPhysics;
348 }
349 342
350 if (scripted) 343 if (scripted)
351 { 344 m_scene.RegionInfo.RegionSettings.DisableScripts = true;
352 m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipScripts;
353 }
354 else 345 else
355 { 346 m_scene.RegionInfo.RegionSettings.DisableScripts = false;
356 m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipScripts; 347
357 } 348 if (collisionEvents)
349 m_scene.RegionInfo.RegionSettings.DisableCollisions = true;
350 else
351 m_scene.RegionInfo.RegionSettings.DisableCollisions = false;
352
358 353
354 m_scene.RegionInfo.RegionSettings.Save();
359 355
360 m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics); 356 m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics);
361 } 357 }
@@ -378,24 +374,27 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
378 RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs(); 374 RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs();
379 args.billableFactor = m_scene.RegionInfo.EstateSettings.billableFactor; 375 args.billableFactor = m_scene.RegionInfo.EstateSettings.billableFactor;
380 args.estateID = m_scene.RegionInfo.EstateSettings.estateID; 376 args.estateID = m_scene.RegionInfo.EstateSettings.estateID;
381 args.maxAgents = m_scene.RegionInfo.EstateSettings.maxAgents; 377 args.maxAgents = (byte)m_scene.RegionInfo.RegionSettings.AgentLimit;
382 args.objectBonusFactor = m_scene.RegionInfo.EstateSettings.objectBonusFactor; 378 args.objectBonusFactor = (float)m_scene.RegionInfo.RegionSettings.ObjectBonus;
383 args.parentEstateID = m_scene.RegionInfo.EstateSettings.parentEstateID; 379 args.parentEstateID = m_scene.RegionInfo.EstateSettings.parentEstateID;
384 args.pricePerMeter = m_scene.RegionInfo.EstateSettings.pricePerMeter; 380 args.pricePerMeter = m_scene.RegionInfo.EstateSettings.pricePerMeter;
385 args.redirectGridX = m_scene.RegionInfo.EstateSettings.redirectGridX; 381 args.redirectGridX = m_scene.RegionInfo.EstateSettings.redirectGridX;
386 args.redirectGridY = m_scene.RegionInfo.EstateSettings.redirectGridY; 382 args.redirectGridY = m_scene.RegionInfo.EstateSettings.redirectGridY;
387 args.regionFlags = (uint)(m_scene.RegionInfo.EstateSettings.regionFlags); 383 args.regionFlags = GetRegionFlags();
388 args.simAccess = (byte)m_scene.RegionInfo.EstateSettings.simAccess; 384 byte mature = 13;
385 if(m_scene.RegionInfo.RegionSettings.Maturity == 1)
386 mature = 21;
387 args.simAccess = mature;
389 388
390 if (m_scene.RegionInfo.EstateSettings.useFixedSun) 389 if (m_scene.RegionInfo.RegionSettings.FixedSun)
391 args.sunHour = m_scene.RegionInfo.EstateSettings.sunHour; 390 args.sunHour = m_scene.RegionInfo.EstateSettings.sunHour;
392 else 391 else
393 args.sunHour = m_scene.EventManager.GetSunLindenHour(); 392 args.sunHour = m_scene.EventManager.GetSunLindenHour();
394 393
395 args.terrainLowerLimit = m_scene.RegionInfo.EstateSettings.terrainLowerLimit; 394 args.terrainLowerLimit = (float)m_scene.RegionInfo.RegionSettings.TerrainLowerLimit;
396 args.terrainRaiseLimit = m_scene.RegionInfo.EstateSettings.terrainRaiseLimit; 395 args.terrainRaiseLimit = (float)m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
397 args.useEstateSun = !m_scene.RegionInfo.EstateSettings.useFixedSun; 396 args.useEstateSun = !m_scene.RegionInfo.RegionSettings.FixedSun;
398 args.waterHeight = m_scene.RegionInfo.EstateSettings.waterHeight; 397 args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight;
399 args.simName = m_scene.RegionInfo.RegionName; 398 args.simName = m_scene.RegionInfo.RegionName;
400 399
401 400
@@ -541,10 +540,13 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
541 args.terrainStartHeight1 = m_scene.RegionInfo.EstateSettings.terrainStartHeight1; 540 args.terrainStartHeight1 = m_scene.RegionInfo.EstateSettings.terrainStartHeight1;
542 args.terrainStartHeight2 = m_scene.RegionInfo.EstateSettings.terrainStartHeight2; 541 args.terrainStartHeight2 = m_scene.RegionInfo.EstateSettings.terrainStartHeight2;
543 args.terrainStartHeight3 = m_scene.RegionInfo.EstateSettings.terrainStartHeight3; 542 args.terrainStartHeight3 = m_scene.RegionInfo.EstateSettings.terrainStartHeight3;
544 args.simAccess = (byte)m_scene.RegionInfo.EstateSettings.simAccess; 543 byte mature = 13;
545 args.waterHeight = m_scene.RegionInfo.EstateSettings.waterHeight; 544 if(m_scene.RegionInfo.RegionSettings.Maturity == 1)
545 mature = 21;
546 args.simAccess = mature;
547 args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight;
546 548
547 args.regionFlags = (uint)m_scene.RegionInfo.EstateSettings.regionFlags; 549 args.regionFlags = GetRegionFlags();
548 args.regionName = m_scene.RegionInfo.RegionName; 550 args.regionName = m_scene.RegionInfo.RegionName;
549 args.SimOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID; 551 args.SimOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID;
550 args.terrainBase0 = m_scene.RegionInfo.EstateSettings.terrainBase0; 552 args.terrainBase0 = m_scene.RegionInfo.EstateSettings.terrainBase0;
@@ -573,6 +575,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
573 public void Initialise(Scene scene, IConfigSource source) 575 public void Initialise(Scene scene, IConfigSource source)
574 { 576 {
575 m_scene = scene; 577 m_scene = scene;
578 m_scene.RegisterModuleInterface<IEstateModule>(this);
576 m_scene.EventManager.OnNewClient += EventManager_OnNewClient; 579 m_scene.EventManager.OnNewClient += EventManager_OnNewClient;
577 m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight; 580 m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
578 } 581 }
@@ -602,8 +605,8 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
602 605
603 public void changeWaterHeight(float height) 606 public void changeWaterHeight(float height)
604 { 607 {
605 setRegionTerrainSettings(height, m_scene.RegionInfo.EstateSettings.terrainRaiseLimit, m_scene.RegionInfo.EstateSettings.terrainLowerLimit, 608 setRegionTerrainSettings(height, (float)m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit, (float)m_scene.RegionInfo.RegionSettings.TerrainLowerLimit,
606 m_scene.RegionInfo.EstateSettings.useFixedSun, m_scene.RegionInfo.EstateSettings.sunHour); 609 m_scene.RegionInfo.RegionSettings.FixedSun, m_scene.RegionInfo.EstateSettings.sunHour);
607 sendRegionInfoPacketToAll(); 610 sendRegionInfoPacketToAll();
608 } 611 }
609 612
@@ -631,5 +634,12 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
631 client.OnLandStatRequest += HandleLandStatRequest; 634 client.OnLandStatRequest += HandleLandStatRequest;
632 sendRegionHandshake(client); 635 sendRegionHandshake(client);
633 } 636 }
637
638 public uint GetRegionFlags()
639 {
640 Simulator.RegionFlags flags = Simulator.RegionFlags.None;
641 //m_scene.RegionInfo.RegionSettings.
642 return (uint)flags;
643 }
634 } 644 }
635} 645}