Patch #4 of the region settings series. Partial functionality of the new
storage system. More patches to follow.
0.6.0-stable
Melanie Thielker 2008-07-14 01:27:47 +00:00
parent 476e08286e
commit e712678689
15 changed files with 163 additions and 271 deletions

View File

@ -53,17 +53,11 @@ namespace OpenSim.Framework
private LLUUID m_estateManager8; private LLUUID m_estateManager8;
private LLUUID m_estateManager9; private LLUUID m_estateManager9;
private string m_estateName; private string m_estateName;
private byte m_maxAgents;
private float m_objectBonusFactor;
private uint m_parentEstateID; private uint m_parentEstateID;
private int m_pricePerMeter; private int m_pricePerMeter;
private int m_redirectGridX; private int m_redirectGridX;
private int m_redirectGridY; private int m_redirectGridY;
private bool m_regionAllowTerraform;
private Simulator.RegionFlags m_regionFlags;
private float m_regionWaterHeight;
private Simulator.SimAccess m_simAccess;
private float m_sunHour; private float m_sunHour;
private LLVector3 m_sunPosition; private LLVector3 m_sunPosition;
private LLUUID m_terrainBase0; private LLUUID m_terrainBase0;
@ -80,15 +74,11 @@ namespace OpenSim.Framework
private float m_terrainHeightRange2; private float m_terrainHeightRange2;
private float m_terrainHeightRange3; private float m_terrainHeightRange3;
private LLUUID m_terrainImageID; private LLUUID m_terrainImageID;
private float m_terrainLowerLimit;
private double m_terrainMultiplier; private double m_terrainMultiplier;
private float m_terrainRaiseLimit;
private float m_terrainStartHeight0; private float m_terrainStartHeight0;
private float m_terrainStartHeight1; private float m_terrainStartHeight1;
private float m_terrainStartHeight2; private float m_terrainStartHeight2;
private float m_terrainStartHeight3; private float m_terrainStartHeight3;
private bool m_useFixedSun;
private float m_waterHeight;
public EstateSettings() public EstateSettings()
{ {
@ -132,26 +122,6 @@ namespace OpenSim.Framework
} }
} }
public byte maxAgents
{
get { return m_maxAgents; }
set
{
m_maxAgents = value;
configMember.forceSetConfigurationOption("max_agents", m_maxAgents.ToString());
}
}
public float objectBonusFactor
{
get { return m_objectBonusFactor; }
set
{
m_objectBonusFactor = value;
configMember.forceSetConfigurationOption("object_bonus_factor", m_objectBonusFactor.ToString());
}
}
public int redirectGridX public int redirectGridX
{ {
get { return m_redirectGridX; } get { return m_redirectGridX; }
@ -172,36 +142,12 @@ namespace OpenSim.Framework
} }
} }
public Simulator.RegionFlags regionFlags
{
get { return m_regionFlags; }
set
{
//m_regionFlags = (Simulator.RegionFlags)0x400000;
m_regionFlags = value;
configMember.forceSetConfigurationOption("region_flags", ((uint) m_regionFlags).ToString());
}
}
public Simulator.SimAccess simAccess
{
get { return m_simAccess; }
set
{
m_simAccess = value;
configMember.forceSetConfigurationOption("sim_access", ((byte) m_simAccess).ToString());
}
}
public float sunHour public float sunHour
{ {
get { return m_sunHour; } get { return m_sunHour; }
set set
{ {
m_sunHour = value; m_sunHour = value;
if (useFixedSun)
configMember.forceSetConfigurationOption("sun_hour", m_sunHour.ToString());
} }
} }
@ -215,36 +161,6 @@ namespace OpenSim.Framework
} }
} }
public float terrainRaiseLimit
{
get { return m_terrainRaiseLimit; }
set
{
m_terrainRaiseLimit = value;
configMember.forceSetConfigurationOption("terrain_raise_limit", m_terrainRaiseLimit.ToString());
}
}
public float terrainLowerLimit
{
get { return m_terrainLowerLimit; }
set
{
m_terrainLowerLimit = value;
configMember.forceSetConfigurationOption("terrain_lower_limit", m_terrainLowerLimit.ToString());
}
}
public bool useFixedSun
{
get { return m_useFixedSun; }
set
{
m_useFixedSun = value;
configMember.forceSetConfigurationOption("use_fixed_sun", m_useFixedSun.ToString());
}
}
public int pricePerMeter public int pricePerMeter
{ {
get { return m_pricePerMeter; } get { return m_pricePerMeter; }
@ -256,28 +172,6 @@ namespace OpenSim.Framework
} }
public float regionWaterHeight
{
get { return m_regionWaterHeight; }
set
{
m_regionWaterHeight = value;
configMember.forceSetConfigurationOption("region_water_height", m_regionWaterHeight.ToString());
}
}
public bool regionAllowTerraform
{
get { return m_regionAllowTerraform; }
set
{
m_regionAllowTerraform = value;
configMember.forceSetConfigurationOption("region_allow_terraform", m_regionAllowTerraform.ToString());
}
}
// Region Information // Region Information
// Low resolution 'base' textures. No longer used. // Low resolution 'base' textures. No longer used.
@ -473,16 +367,6 @@ namespace OpenSim.Framework
} }
} }
public float waterHeight
{
get { return m_waterHeight; }
set
{
m_waterHeight = value;
configMember.forceSetConfigurationOption("water_height", m_waterHeight.ToString());
}
}
public LLUUID terrainImageID public LLUUID terrainImageID
{ {
get { return m_terrainImageID; } get { return m_terrainImageID; }
@ -760,30 +644,16 @@ namespace OpenSim.Framework
configMember.addConfigurationOption("max_agents", ConfigurationOption.ConfigurationTypes.TYPE_BYTE, String.Empty, "40", configMember.addConfigurationOption("max_agents", ConfigurationOption.ConfigurationTypes.TYPE_BYTE, String.Empty, "40",
true); true);
configMember.addConfigurationOption("object_bonus_factor", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT,
String.Empty, "1.0", true);
configMember.addConfigurationOption("redirect_grid_x", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty, configMember.addConfigurationOption("redirect_grid_x", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty,
"0", true); "0", true);
configMember.addConfigurationOption("redirect_grid_y", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty, configMember.addConfigurationOption("redirect_grid_y", ConfigurationOption.ConfigurationTypes.TYPE_INT32, String.Empty,
"0", true); "0", true);
configMember.addConfigurationOption("region_flags", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, String.Empty,
"336723974", true); //Taken from a Linden sim for the moment.
configMember.addConfigurationOption("sim_access", ConfigurationOption.ConfigurationTypes.TYPE_BYTE, String.Empty, "21",
true);
configMember.addConfigurationOption("sun_hour", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT, String.Empty, "0", configMember.addConfigurationOption("sun_hour", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT, String.Empty, "0",
true); true);
configMember.addConfigurationOption("terrain_raise_limit", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT,
String.Empty, "4.0", true); //4 is the LL default
configMember.addConfigurationOption("terrain_lower_limit", ConfigurationOption.ConfigurationTypes.TYPE_FLOAT,
String.Empty, "-4.0", true); //-4.0 is the LL default
configMember.addConfigurationOption("use_fixed_sun", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN, String.Empty, configMember.addConfigurationOption("use_fixed_sun", ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN, String.Empty,
"false", true); "false", true);
configMember.addConfigurationOption("price_per_meter", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, configMember.addConfigurationOption("price_per_meter", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
String.Empty, "1", true); String.Empty, "1", true);
configMember.addConfigurationOption("region_water_height",
ConfigurationOption.ConfigurationTypes.TYPE_FLOAT, String.Empty, "20", true);
configMember.addConfigurationOption("region_allow_terraform",
ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN, String.Empty, "true", true);
configMember.addConfigurationOption("terrain_base_0", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, String.Empty, configMember.addConfigurationOption("terrain_base_0", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, String.Empty,
"b8d3965a-ad78-bf43-699b-bff8eca6c975", true); "b8d3965a-ad78-bf43-699b-bff8eca6c975", true);
@ -868,46 +738,18 @@ namespace OpenSim.Framework
case "parent_estate_id": case "parent_estate_id":
m_parentEstateID = (uint) configuration_result; m_parentEstateID = (uint) configuration_result;
break; break;
case "max_agents":
m_maxAgents = (byte) configuration_result;
break;
case "object_bonus_factor":
m_objectBonusFactor = (float) configuration_result;
break;
case "redirect_grid_x": case "redirect_grid_x":
m_redirectGridX = (int) configuration_result; m_redirectGridX = (int) configuration_result;
break; break;
case "redirect_grid_y": case "redirect_grid_y":
m_redirectGridY = (int) configuration_result; m_redirectGridY = (int) configuration_result;
break; break;
case "region_flags":
m_regionFlags = (Simulator.RegionFlags) ((uint) configuration_result);
break;
case "sim_access":
m_simAccess = (Simulator.SimAccess) ((byte) configuration_result);
break;
case "sun_hour": case "sun_hour":
m_sunHour = (float) configuration_result; m_sunHour = (float) configuration_result;
break; break;
case "terrain_raise_limit":
m_terrainRaiseLimit = (float) configuration_result;
break;
case "terrain_lower_limit":
m_terrainLowerLimit = (float) configuration_result;
break;
case "use_fixed_sun":
m_useFixedSun = (bool) configuration_result;
break;
case "price_per_meter": case "price_per_meter":
m_pricePerMeter = Convert.ToInt32(configuration_result); m_pricePerMeter = Convert.ToInt32(configuration_result);
break; break;
case "region_water_height":
m_regionWaterHeight = (float) configuration_result;
break;
case "region_allow_terraform":
m_regionAllowTerraform = (bool) configuration_result;
break;
case "terrain_base_0": case "terrain_base_0":
m_terrainBase0 = (LLUUID) configuration_result; m_terrainBase0 = (LLUUID) configuration_result;
@ -970,10 +812,6 @@ namespace OpenSim.Framework
case "terrain_multiplier": case "terrain_multiplier":
m_terrainMultiplier = Convert.ToDouble(configuration_result); m_terrainMultiplier = Convert.ToDouble(configuration_result);
break; break;
case "water_height":
double tmpVal = (double) configuration_result;
m_waterHeight = (float) tmpVal;
break;
case "terrain_image_id": case "terrain_image_id":
m_terrainImageID = (LLUUID) configuration_result; m_terrainImageID = (LLUUID) configuration_result;
break; break;

View File

@ -458,7 +458,7 @@ namespace OpenSim.Framework
set { m_TerrainRaiseLimit = value; } set { m_TerrainRaiseLimit = value; }
} }
private double m_TerrainLowerLimit = 100; private double m_TerrainLowerLimit = -100;
public double TerrainLowerLimit public double TerrainLowerLimit
{ {

View File

@ -136,7 +136,7 @@ namespace OpenSim.Region.ClientStack
scene.PhysicsScene = GetPhysicsScene(); scene.PhysicsScene = GetPhysicsScene();
scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
scene.PhysicsScene.SetWaterLevel(regionInfo.EstateSettings.waterHeight); scene.PhysicsScene.SetWaterLevel((float)regionInfo.RegionSettings.WaterHeight);
//Master Avatar Setup //Master Avatar Setup
UserProfileData masterAvatar; UserProfileData masterAvatar;

View File

@ -207,7 +207,7 @@ namespace OpenSim.Region.Communications.Local
map.Name = regInfo.RegionName; map.Name = regInfo.RegionName;
map.X = (ushort) regInfo.RegionLocX; map.X = (ushort) regInfo.RegionLocX;
map.Y = (ushort) regInfo.RegionLocY; map.Y = (ushort) regInfo.RegionLocY;
map.WaterHeight = (byte) regInfo.EstateSettings.waterHeight; map.WaterHeight = (byte) regInfo.RegionSettings.WaterHeight;
map.MapImageId = regInfo.EstateSettings.terrainImageID; map.MapImageId = regInfo.EstateSettings.terrainImageID;
map.Agents = 1; map.Agents = 1;
map.RegionFlags = 72458694; map.RegionFlags = 72458694;

View File

@ -258,11 +258,11 @@ namespace OpenSim.Region.DataSnapshot
// "PG" - Mormontown // "PG" - Mormontown
// "Mature" - Sodom and Gomorrah // "Mature" - Sodom and Gomorrah
// (Depreciated) "Patriotic Nigra Testing Sandbox" - Abandon Hope All Ye Who Enter Here // (Depreciated) "Patriotic Nigra Testing Sandbox" - Abandon Hope All Ye Who Enter Here
if ((scene.RegionInfo.EstateSettings.simAccess & Simulator.SimAccess.Mature) == Simulator.SimAccess.Mature) if (scene.RegionInfo.RegionSettings.Maturity == 1)
{ {
return "Mature"; return "Mature";
} }
else if ((scene.RegionInfo.EstateSettings.simAccess & Simulator.SimAccess.PG) == Simulator.SimAccess.PG) else if (scene.RegionInfo.RegionSettings.Maturity == 0)
{ {
return "PG"; return "PG";
} }

View File

@ -0,0 +1,38 @@
/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using OpenSim.Framework;
using libsecondlife;
namespace OpenSim.Region.Environment.Interfaces
{
public interface IEstateModule : IRegionModule
{
uint GetRegionFlags();
}
}

View File

@ -37,7 +37,7 @@ using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.Environment.Modules.World.Estate namespace OpenSim.Region.Environment.Modules.World.Estate
{ {
public class EstateManagementModule : IRegionModule public class EstateManagementModule : IEstateModule
{ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -57,50 +57,46 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor, private void estateSetRegionInfoHandler(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor,
int matureLevel, bool restrictPushObject, bool allowParcelChanges) int matureLevel, bool restrictPushObject, bool allowParcelChanges)
{ {
m_scene.RegionInfo.EstateSettings.regionFlags = Simulator.RegionFlags.None;
if (blockTerraform) if (blockTerraform)
{ m_scene.RegionInfo.RegionSettings.BlockTerraform = true;
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | else
Simulator.RegionFlags.BlockTerraform; m_scene.RegionInfo.RegionSettings.BlockTerraform = false;
}
if (noFly) if (noFly)
{ m_scene.RegionInfo.RegionSettings.BlockFly = true;
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | else
Simulator.RegionFlags.NoFly; m_scene.RegionInfo.RegionSettings.BlockFly = false;
}
if (allowDamage) if (allowDamage)
{ m_scene.RegionInfo.RegionSettings.AllowDamage = true;
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | else
Simulator.RegionFlags.AllowDamage; m_scene.RegionInfo.RegionSettings.AllowDamage = false;
}
if (blockLandResell) if (blockLandResell)
{ m_scene.RegionInfo.RegionSettings.AllowLandResell = false;
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | else
Simulator.RegionFlags.BlockLandResell; m_scene.RegionInfo.RegionSettings.AllowLandResell = true;
}
m_scene.RegionInfo.EstateSettings.maxAgents = (byte) maxAgents; m_scene.RegionInfo.RegionSettings.AgentLimit = (byte) maxAgents;
m_scene.RegionInfo.EstateSettings.objectBonusFactor = objectBonusFactor; m_scene.RegionInfo.RegionSettings.ObjectBonus = objectBonusFactor;
m_scene.RegionInfo.EstateSettings.simAccess = (Simulator.SimAccess) matureLevel;
if(matureLevel <= 13)
m_scene.RegionInfo.RegionSettings.Maturity = 0;
else
m_scene.RegionInfo.RegionSettings.Maturity = 1;
if (restrictPushObject) if (restrictPushObject)
{ m_scene.RegionInfo.RegionSettings.RestrictPushing = true;
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | else
Simulator.RegionFlags.RestrictPushObject; m_scene.RegionInfo.RegionSettings.RestrictPushing = false;
}
if (allowParcelChanges) if (allowParcelChanges)
{ m_scene.RegionInfo.RegionSettings.AllowLandJoinDivide = true;
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags | else
Simulator.RegionFlags.AllowParcelChanges; m_scene.RegionInfo.RegionSettings.AllowLandJoinDivide = false;
}
m_scene.RegionInfo.RegionSettings.Save();
sendRegionInfoPacketToAll(); sendRegionInfoPacketToAll();
} }
@ -175,19 +171,20 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
bool UseFixedSun, float SunHour) bool UseFixedSun, float SunHour)
{ {
// Water Height // Water Height
m_scene.RegionInfo.EstateSettings.waterHeight = WaterHeight; m_scene.RegionInfo.RegionSettings.WaterHeight = WaterHeight;
// Terraforming limits // Terraforming limits
m_scene.RegionInfo.EstateSettings.terrainRaiseLimit = TerrainRaiseLimit; m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit = TerrainRaiseLimit;
m_scene.RegionInfo.EstateSettings.terrainLowerLimit = TerrainLowerLimit; m_scene.RegionInfo.RegionSettings.TerrainLowerLimit = TerrainLowerLimit;
// Time of day / fixed sun // Time of day / fixed sun
m_scene.RegionInfo.EstateSettings.useFixedSun = UseFixedSun; m_scene.RegionInfo.RegionSettings.FixedSun = UseFixedSun;
m_scene.RegionInfo.EstateSettings.sunHour = SunHour; m_scene.RegionInfo.EstateSettings.sunHour = SunHour;
m_scene.EventManager.TriggerEstateToolsTimeUpdate(m_scene.RegionInfo.RegionHandle, UseFixedSun, UseFixedSun, SunHour); m_scene.EventManager.TriggerEstateToolsTimeUpdate(m_scene.RegionInfo.RegionHandle, UseFixedSun, UseFixedSun, SunHour);
//m_log.Debug("[ESTATE]: UFS: " + UseFixedSun.ToString()); //m_log.Debug("[ESTATE]: UFS: " + UseFixedSun.ToString());
//m_log.Debug("[ESTATE]: SunHour: " + SunHour.ToString()); //m_log.Debug("[ESTATE]: SunHour: " + SunHour.ToString());
sendRegionInfoPacketToAll(); sendRegionInfoPacketToAll();
m_scene.RegionInfo.RegionSettings.Save();
} }
private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds) private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
@ -339,23 +336,22 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
private void handleEstateDebugRegionRequest(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, bool scripted, bool collisionEvents, bool physics) private void handleEstateDebugRegionRequest(IClientAPI remote_client, LLUUID invoice, LLUUID senderID, bool scripted, bool collisionEvents, bool physics)
{ {
if (physics) if (physics)
{ m_scene.RegionInfo.RegionSettings.DisablePhysics = true;
m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipPhysics;
}
else else
{ m_scene.RegionInfo.RegionSettings.DisablePhysics = false;
m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipPhysics;
}
if (scripted) if (scripted)
{ m_scene.RegionInfo.RegionSettings.DisableScripts = true;
m_scene.RegionInfo.EstateSettings.regionFlags |= Simulator.RegionFlags.SkipScripts;
}
else else
{ m_scene.RegionInfo.RegionSettings.DisableScripts = false;
m_scene.RegionInfo.EstateSettings.regionFlags &= ~Simulator.RegionFlags.SkipScripts;
}
if (collisionEvents)
m_scene.RegionInfo.RegionSettings.DisableCollisions = true;
else
m_scene.RegionInfo.RegionSettings.DisableCollisions = false;
m_scene.RegionInfo.RegionSettings.Save();
m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics); m_scene.SetSceneCoreDebug(scripted, collisionEvents, physics);
} }
@ -378,24 +374,27 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs(); RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs();
args.billableFactor = m_scene.RegionInfo.EstateSettings.billableFactor; args.billableFactor = m_scene.RegionInfo.EstateSettings.billableFactor;
args.estateID = m_scene.RegionInfo.EstateSettings.estateID; args.estateID = m_scene.RegionInfo.EstateSettings.estateID;
args.maxAgents = m_scene.RegionInfo.EstateSettings.maxAgents; args.maxAgents = (byte)m_scene.RegionInfo.RegionSettings.AgentLimit;
args.objectBonusFactor = m_scene.RegionInfo.EstateSettings.objectBonusFactor; args.objectBonusFactor = (float)m_scene.RegionInfo.RegionSettings.ObjectBonus;
args.parentEstateID = m_scene.RegionInfo.EstateSettings.parentEstateID; args.parentEstateID = m_scene.RegionInfo.EstateSettings.parentEstateID;
args.pricePerMeter = m_scene.RegionInfo.EstateSettings.pricePerMeter; args.pricePerMeter = m_scene.RegionInfo.EstateSettings.pricePerMeter;
args.redirectGridX = m_scene.RegionInfo.EstateSettings.redirectGridX; args.redirectGridX = m_scene.RegionInfo.EstateSettings.redirectGridX;
args.redirectGridY = m_scene.RegionInfo.EstateSettings.redirectGridY; args.redirectGridY = m_scene.RegionInfo.EstateSettings.redirectGridY;
args.regionFlags = (uint)(m_scene.RegionInfo.EstateSettings.regionFlags); args.regionFlags = GetRegionFlags();
args.simAccess = (byte)m_scene.RegionInfo.EstateSettings.simAccess; byte mature = 13;
if(m_scene.RegionInfo.RegionSettings.Maturity == 1)
mature = 21;
args.simAccess = mature;
if (m_scene.RegionInfo.EstateSettings.useFixedSun) if (m_scene.RegionInfo.RegionSettings.FixedSun)
args.sunHour = m_scene.RegionInfo.EstateSettings.sunHour; args.sunHour = m_scene.RegionInfo.EstateSettings.sunHour;
else else
args.sunHour = m_scene.EventManager.GetSunLindenHour(); args.sunHour = m_scene.EventManager.GetSunLindenHour();
args.terrainLowerLimit = m_scene.RegionInfo.EstateSettings.terrainLowerLimit; args.terrainLowerLimit = (float)m_scene.RegionInfo.RegionSettings.TerrainLowerLimit;
args.terrainRaiseLimit = m_scene.RegionInfo.EstateSettings.terrainRaiseLimit; args.terrainRaiseLimit = (float)m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
args.useEstateSun = !m_scene.RegionInfo.EstateSettings.useFixedSun; args.useEstateSun = !m_scene.RegionInfo.RegionSettings.FixedSun;
args.waterHeight = m_scene.RegionInfo.EstateSettings.waterHeight; args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight;
args.simName = m_scene.RegionInfo.RegionName; args.simName = m_scene.RegionInfo.RegionName;
@ -541,10 +540,13 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
args.terrainStartHeight1 = m_scene.RegionInfo.EstateSettings.terrainStartHeight1; args.terrainStartHeight1 = m_scene.RegionInfo.EstateSettings.terrainStartHeight1;
args.terrainStartHeight2 = m_scene.RegionInfo.EstateSettings.terrainStartHeight2; args.terrainStartHeight2 = m_scene.RegionInfo.EstateSettings.terrainStartHeight2;
args.terrainStartHeight3 = m_scene.RegionInfo.EstateSettings.terrainStartHeight3; args.terrainStartHeight3 = m_scene.RegionInfo.EstateSettings.terrainStartHeight3;
args.simAccess = (byte)m_scene.RegionInfo.EstateSettings.simAccess; byte mature = 13;
args.waterHeight = m_scene.RegionInfo.EstateSettings.waterHeight; if(m_scene.RegionInfo.RegionSettings.Maturity == 1)
mature = 21;
args.simAccess = mature;
args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight;
args.regionFlags = (uint)m_scene.RegionInfo.EstateSettings.regionFlags; args.regionFlags = GetRegionFlags();
args.regionName = m_scene.RegionInfo.RegionName; args.regionName = m_scene.RegionInfo.RegionName;
args.SimOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID; args.SimOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID;
args.terrainBase0 = m_scene.RegionInfo.EstateSettings.terrainBase0; args.terrainBase0 = m_scene.RegionInfo.EstateSettings.terrainBase0;
@ -573,6 +575,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
public void Initialise(Scene scene, IConfigSource source) public void Initialise(Scene scene, IConfigSource source)
{ {
m_scene = scene; m_scene = scene;
m_scene.RegisterModuleInterface<IEstateModule>(this);
m_scene.EventManager.OnNewClient += EventManager_OnNewClient; m_scene.EventManager.OnNewClient += EventManager_OnNewClient;
m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight; m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
} }
@ -602,8 +605,8 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
public void changeWaterHeight(float height) public void changeWaterHeight(float height)
{ {
setRegionTerrainSettings(height, m_scene.RegionInfo.EstateSettings.terrainRaiseLimit, m_scene.RegionInfo.EstateSettings.terrainLowerLimit, setRegionTerrainSettings(height, (float)m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit, (float)m_scene.RegionInfo.RegionSettings.TerrainLowerLimit,
m_scene.RegionInfo.EstateSettings.useFixedSun, m_scene.RegionInfo.EstateSettings.sunHour); m_scene.RegionInfo.RegionSettings.FixedSun, m_scene.RegionInfo.EstateSettings.sunHour);
sendRegionInfoPacketToAll(); sendRegionInfoPacketToAll();
} }
@ -631,5 +634,12 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
client.OnLandStatRequest += HandleLandStatRequest; client.OnLandStatRequest += HandleLandStatRequest;
sendRegionHandshake(client); sendRegionHandshake(client);
} }
public uint GetRegionFlags()
{
Simulator.RegionFlags flags = Simulator.RegionFlags.None;
//m_scene.RegionInfo.RegionSettings.
return (uint)flags;
}
} }
} }

View File

@ -140,7 +140,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land
//Normal Calculations //Normal Calculations
return Convert.ToInt32( return Convert.ToInt32(
Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity * Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * m_scene.objectCapacity *
Convert.ToDecimal(m_scene.RegionInfo.EstateSettings.objectBonusFactor))); ; Convert.ToDecimal(m_scene.RegionInfo.RegionSettings.ObjectBonus))); ;
} }
} }
public int getSimulatorMaxPrimCount(ILandObject thisObject) public int getSimulatorMaxPrimCount(ILandObject thisObject)
@ -161,7 +161,15 @@ namespace OpenSim.Region.Environment.Modules.World.Land
public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client)
{ {
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); IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>();
uint regionFlags = 67108864;
if(estateModule != null)
regionFlags = estateModule.GetRegionFlags();
remote_client.SendLandProperties(remote_client, sequence_id,
snap_selection, request_result, landData,
(float)m_scene.RegionInfo.RegionSettings.ObjectBonus,
getParcelMaxPrimCount(this),
getSimulatorMaxPrimCount(this), regionFlags);
} }
public void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client) public void updateLandProperties(LandUpdateArgs args, IClientAPI remote_client)

View File

@ -541,8 +541,8 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain
private bool LimitChannelChanges(int xStart, int yStart) private bool LimitChannelChanges(int xStart, int yStart)
{ {
bool changesLimited = false; bool changesLimited = false;
double minDelta = m_scene.RegionInfo.EstateSettings.terrainLowerLimit; double minDelta = m_scene.RegionInfo.RegionSettings.TerrainLowerLimit;
double maxDelta = m_scene.RegionInfo.EstateSettings.terrainRaiseLimit; double maxDelta = m_scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
// loop through the height map for this patch and compare it against // loop through the height map for this patch and compare it against
// the revert map // the revert map

View File

@ -297,24 +297,11 @@ namespace OpenSim.Region.Environment.Scenes
m_httpListener = httpServer; m_httpListener = httpServer;
m_dumpAssetsToFile = dumpAssetsToFile; m_dumpAssetsToFile = dumpAssetsToFile;
if ((RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts) m_scripts_enabled = !RegionInfo.RegionSettings.DisableScripts;
{
m_scripts_enabled = false;
}
else
{
m_scripts_enabled = true;
}
if ((RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipPhysics) == Simulator.RegionFlags.SkipPhysics)
{
m_physics_enabled = false;
}
else
{
m_physics_enabled = true;
}
m_statsReporter = new SimStatsReporter(regInfo); m_physics_enabled = !RegionInfo.RegionSettings.DisablePhysics;
m_statsReporter = new SimStatsReporter(this);
m_statsReporter.OnSendStatsResult += SendSimStatsPackets; m_statsReporter.OnSendStatsResult += SendSimStatsPackets;
m_statsReporter.SetObjectCapacity(objectCapacity); m_statsReporter.SetObjectCapacity(objectCapacity);
@ -1076,7 +1063,7 @@ namespace OpenSim.Region.Environment.Scenes
//float tmpval = (float)hm[x, y]; //float tmpval = (float)hm[x, y];
float heightvalue = (float)hm[x, y]; float heightvalue = (float)hm[x, y];
if ((float)heightvalue > m_regInfo.EstateSettings.waterHeight) if (heightvalue > (float)m_regInfo.RegionSettings.WaterHeight)
{ {
// scale height value // scale height value
heightvalue = low + mid * (heightvalue - low) / mid; heightvalue = low + mid * (heightvalue - low) / mid;
@ -1110,7 +1097,7 @@ namespace OpenSim.Region.Environment.Scenes
else else
{ {
// Y flip the cordinates // Y flip the cordinates
heightvalue = m_regInfo.EstateSettings.waterHeight - heightvalue; heightvalue = (float)m_regInfo.RegionSettings.WaterHeight - heightvalue;
if (heightvalue > 19) if (heightvalue > 19)
heightvalue = 19; heightvalue = 19;
if (heightvalue < 0) if (heightvalue < 0)

View File

@ -58,7 +58,7 @@ namespace OpenSim.Region.Environment.Scenes
public void CreateScriptInstances(int startParam, bool postOnRez) public void CreateScriptInstances(int startParam, bool postOnRez)
{ {
// Don't start scripts if they're turned off in the region! // Don't start scripts if they're turned off in the region!
if (!((m_scene.RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts)) if (!m_scene.RegionInfo.RegionSettings.DisableScripts)
{ {
foreach (SceneObjectPart part in m_parts.Values) foreach (SceneObjectPart part in m_parts.Values)
{ {

View File

@ -173,7 +173,7 @@ namespace OpenSim.Region.Environment.Scenes
AddFlag(LLObject.ObjectFlags.Scripted); AddFlag(LLObject.ObjectFlags.Scripted);
if (!((m_parentGroup.Scene.RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts)) if (!m_parentGroup.Scene.RegionInfo.RegionSettings.DisableScripts)
{ {
AssetCache cache = m_parentGroup.Scene.AssetCache; AssetCache cache = m_parentGroup.Scene.AssetCache;

View File

@ -29,6 +29,7 @@ using System;
using System.Timers; using System.Timers;
using libsecondlife.Packets; using libsecondlife.Packets;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Environment.Interfaces;
namespace OpenSim.Region.Environment.Scenes namespace OpenSim.Region.Environment.Scenes
{ {
@ -104,16 +105,19 @@ namespace OpenSim.Region.Environment.Scenes
SimStatsPacket statpack = (SimStatsPacket)PacketPool.Instance.GetPacket(PacketType.SimStats); SimStatsPacket statpack = (SimStatsPacket)PacketPool.Instance.GetPacket(PacketType.SimStats);
private Scene m_scene;
private RegionInfo ReportingRegion; private RegionInfo ReportingRegion;
private Timer m_report = new Timer(); private Timer m_report = new Timer();
public SimStatsReporter(RegionInfo regionData) public SimStatsReporter(Scene scene)
{ {
statsUpdateFactor = (float)(statsUpdatesEveryMS / 1000); statsUpdateFactor = (float)(statsUpdatesEveryMS / 1000);
ReportingRegion = regionData; m_scene = scene;
ReportingRegion = scene.RegionInfo;
for (int i = 0; i<21;i++) for (int i = 0; i<21;i++)
{ {
sb[i] = new SimStatsPacket.StatBlock(); sb[i] = new SimStatsPacket.StatBlock();
@ -145,7 +149,8 @@ namespace OpenSim.Region.Environment.Scenes
statpack.Region.RegionY = ReportingRegion.RegionLocY; statpack.Region.RegionY = ReportingRegion.RegionLocY;
try try
{ {
statpack.Region.RegionFlags = (uint) ReportingRegion.EstateSettings.regionFlags; IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>();
statpack.Region.RegionFlags = estateModule.GetRegionFlags();
} }
catch (Exception) catch (Exception)
{ {

View File

@ -2822,7 +2822,7 @@ namespace OpenSim.Region.ScriptEngine.Common
public double llWater(LSL_Types.Vector3 offset) public double llWater(LSL_Types.Vector3 offset)
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
return World.RegionInfo.EstateSettings.waterHeight; return World.RegionInfo.RegionSettings.WaterHeight;
} }
public void llPassTouches(int pass) public void llPassTouches(int pass)
@ -6456,10 +6456,10 @@ namespace OpenSim.Region.ScriptEngine.Common
case 7: // DATA_SIM_RATING case 7: // DATA_SIM_RATING
if (info == null) if (info == null)
return LLUUID.Zero.ToString(); return LLUUID.Zero.ToString();
int access = (int)info.EstateSettings.simAccess; int access = info.RegionSettings.Maturity;
if (access == 21) if (access == 0)
reply = "MATURE"; reply = "PG";
else if (access == 13) else if (access == 1)
reply = "MATURE"; reply = "MATURE";
else else
reply = "UNKNOWN"; reply = "UNKNOWN";
@ -6829,7 +6829,10 @@ namespace OpenSim.Region.ScriptEngine.Common
public LSL_Types.LSLInteger llGetRegionFlags() public LSL_Types.LSLInteger llGetRegionFlags()
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
return (int)World.RegionInfo.EstateSettings.regionFlags; IEstateModule estate = World.RequestModuleInterface<IEstateModule>();
if(estate == null)
return 67108864;
return estate.GetRegionFlags();
} }
public string llXorBase64StringsCorrect(string str1, string str2) public string llXorBase64StringsCorrect(string str1, string str2)
@ -7006,7 +7009,7 @@ namespace OpenSim.Region.ScriptEngine.Common
// Which probably will be irrelevent in OpenSim.... // Which probably will be irrelevent in OpenSim....
LandData land = World.GetLandData((float)pos.x, (float)pos.y); LandData land = World.GetLandData((float)pos.x, (float)pos.y);
float bonusfactor = World.RegionInfo.EstateSettings.objectBonusFactor; float bonusfactor = (float)World.RegionInfo.RegionSettings.ObjectBonus;
if (land == null) if (land == null)
{ {

View File

@ -2686,7 +2686,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public double llWater(LSL_Types.Vector3 offset) public double llWater(LSL_Types.Vector3 offset)
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
return World.RegionInfo.EstateSettings.waterHeight; return World.RegionInfo.RegionSettings.WaterHeight;
} }
public void llPassTouches(int pass) public void llPassTouches(int pass)
@ -6235,10 +6235,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
case 7: // DATA_SIM_RATING case 7: // DATA_SIM_RATING
if (info == null) if (info == null)
return LLUUID.Zero.ToString(); return LLUUID.Zero.ToString();
int access = (int)info.EstateSettings.simAccess; int access = info.RegionSettings.Maturity;
if (access == 21) if (access == 0)
reply = "MATURE"; reply = "PG";
else if (access == 13) else if (access == 1)
reply = "MATURE"; reply = "MATURE";
else else
reply = "UNKNOWN"; reply = "UNKNOWN";
@ -6609,7 +6609,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public LSL_Types.LSLInteger llGetRegionFlags() public LSL_Types.LSLInteger llGetRegionFlags()
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
return (int)World.RegionInfo.EstateSettings.regionFlags; IEstateModule estate = World.RequestModuleInterface<IEstateModule>();
if(estate == null)
return 67108864;
return (int)estate.GetRegionFlags();
} }
public string llXorBase64StringsCorrect(string str1, string str2) public string llXorBase64StringsCorrect(string str1, string str2)
@ -6786,7 +6789,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// Which probably will be irrelevent in OpenSim.... // Which probably will be irrelevent in OpenSim....
LandData land = World.GetLandData((float)pos.x, (float)pos.y); LandData land = World.GetLandData((float)pos.x, (float)pos.y);
float bonusfactor = World.RegionInfo.EstateSettings.objectBonusFactor; float bonusfactor = (float)World.RegionInfo.RegionSettings.ObjectBonus;
if (land == null) if (land == null)
{ {