aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/World
diff options
context:
space:
mode:
authorMelanie Thielker2008-07-14 01:27:47 +0000
committerMelanie Thielker2008-07-14 01:27:47 +0000
commite712678689f37f7a58e02547a5dbe6a214680db2 (patch)
treea7f13c72ca14860cfb2099fe0603878e57120d7d /OpenSim/Region/Environment/Modules/World
parentMantis#1728. Thank you kindly, Mikem for a patch that solves: (diff)
downloadopensim-SC-e712678689f37f7a58e02547a5dbe6a214680db2.zip
opensim-SC-e712678689f37f7a58e02547a5dbe6a214680db2.tar.gz
opensim-SC-e712678689f37f7a58e02547a5dbe6a214680db2.tar.bz2
opensim-SC-e712678689f37f7a58e02547a5dbe6a214680db2.tar.xz
Patch #9147
Patch #4 of the region settings series. Partial functionality of the new storage system. More patches to follow.
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs132
-rw-r--r--OpenSim/Region/Environment/Modules/World/Land/LandObject.cs14
-rw-r--r--OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs4
3 files changed, 84 insertions, 66 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}
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
index 2b24435..4a5948f 100644
--- a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
+++ b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs
@@ -140,7 +140,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
140 //Normal Calculations 140 //Normal Calculations
141 return Convert.ToInt32( 141 return Convert.ToInt32(
142 Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity * 142 Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity *
143 Convert.ToDecimal(m_scene.RegionInfo.EstateSettings.objectBonusFactor))); ; 143 Convert.ToDecimal(m_scene.RegionInfo.RegionSettings.ObjectBonus))); ;
144 } 144 }
145 } 145 }
146 public int getSimulatorMaxPrimCount(ILandObject thisObject) 146 public int getSimulatorMaxPrimCount(ILandObject thisObject)
@@ -161,7 +161,15 @@ namespace OpenSim.Region.Environment.Modules.World.Land
161 161
162 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)
163 { 163 {
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); 164 IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>();
165 uint regionFlags = 67108864;
166 if(estateModule != null)
167 regionFlags = estateModule.GetRegionFlags();
168 remote_client.SendLandProperties(remote_client, sequence_id,
169 snap_selection, request_result, landData,
170 (float)m_scene.RegionInfo.RegionSettings.ObjectBonus,
171 getParcelMaxPrimCount(this),
172 getSimulatorMaxPrimCount(this), regionFlags);
165 } 173 }
166 174
167 public void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client) 175 public void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client)
@@ -855,4 +863,4 @@ namespace OpenSim.Region.Environment.Modules.World.Land
855 863
856 #endregion 864 #endregion
857 } 865 }
858} \ No newline at end of file 866}
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
index f47e6c0..9892794 100644
--- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs
@@ -541,8 +541,8 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain
541 private bool LimitChannelChanges(int xStart, int yStart) 541 private bool LimitChannelChanges(int xStart, int yStart)
542 { 542 {
543 bool changesLimited = false; 543 bool changesLimited = false;
544 double minDelta = m_scene.RegionInfo.EstateSettings.terrainLowerLimit; 544 double minDelta = m_scene.RegionInfo.RegionSettings.TerrainLowerLimit;
545 double maxDelta = m_scene.RegionInfo.EstateSettings.terrainRaiseLimit; 545 double maxDelta = m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
546 546
547 // loop through the height map for this patch and compare it against 547 // loop through the height map for this patch and compare it against
548 // the revert map 548 // the revert map