*Moved EstateManager into a region module
parent
e8acb49fef
commit
4a87d96c17
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
*
|
*
|
||||||
|
@ -28,23 +28,22 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
using libsecondlife;
|
using libsecondlife;
|
||||||
using libsecondlife.Packets;
|
using libsecondlife.Packets;
|
||||||
using log4net;
|
using OpenSim.Region.Environment.Interfaces;
|
||||||
using OpenSim.Framework;
|
|
||||||
using OpenSim.Region.Environment.Scenes;
|
using OpenSim.Region.Environment.Scenes;
|
||||||
|
using OpenSim.Framework;
|
||||||
|
using Nini.Config;
|
||||||
|
using log4net;
|
||||||
|
|
||||||
namespace OpenSim.Region.Environment
|
namespace OpenSim.Region.Environment.Modules.World.Estate
|
||||||
{
|
{
|
||||||
/// <summary>
|
public class EstateManagementModule : IRegionModule
|
||||||
/// Processes requests regarding estates. Refer to EstateSettings.cs in OpenSim.Framework. Types for all of the core settings
|
|
||||||
/// </summary>
|
|
||||||
public class EstateManager
|
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
private Scene m_scene;
|
private Scene m_scene;
|
||||||
private RegionInfo m_regInfo;
|
|
||||||
|
|
||||||
public enum EstateAccessCodex : uint
|
public enum EstateAccessCodex : uint
|
||||||
{
|
{
|
||||||
|
@ -55,11 +54,7 @@ namespace OpenSim.Region.Environment
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public EstateManager(Scene scene, RegionInfo reginfo)
|
#region Helper Functions
|
||||||
{
|
|
||||||
m_scene = scene;
|
|
||||||
m_regInfo = reginfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool convertParamStringToBool(byte[] field)
|
private bool convertParamStringToBool(byte[] field)
|
||||||
{
|
{
|
||||||
|
@ -82,20 +77,20 @@ namespace OpenSim.Region.Environment
|
||||||
switch (corner)
|
switch (corner)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
m_regInfo.EstateSettings.terrainStartHeight0 = lowValue;
|
m_scene.RegionInfo.EstateSettings.terrainStartHeight0 = lowValue;
|
||||||
m_regInfo.EstateSettings.terrainHeightRange0 = highValue;
|
m_scene.RegionInfo.EstateSettings.terrainHeightRange0 = highValue;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
m_regInfo.EstateSettings.terrainStartHeight1 = lowValue;
|
m_scene.RegionInfo.EstateSettings.terrainStartHeight1 = lowValue;
|
||||||
m_regInfo.EstateSettings.terrainHeightRange1 = highValue;
|
m_scene.RegionInfo.EstateSettings.terrainHeightRange1 = highValue;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
m_regInfo.EstateSettings.terrainStartHeight2 = lowValue;
|
m_scene.RegionInfo.EstateSettings.terrainStartHeight2 = lowValue;
|
||||||
m_regInfo.EstateSettings.terrainHeightRange2 = highValue;
|
m_scene.RegionInfo.EstateSettings.terrainHeightRange2 = highValue;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
m_regInfo.EstateSettings.terrainStartHeight3 = lowValue;
|
m_scene.RegionInfo.EstateSettings.terrainStartHeight3 = lowValue;
|
||||||
m_regInfo.EstateSettings.terrainHeightRange3 = highValue;
|
m_scene.RegionInfo.EstateSettings.terrainHeightRange3 = highValue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,16 +105,16 @@ namespace OpenSim.Region.Environment
|
||||||
switch (band)
|
switch (band)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
m_regInfo.EstateSettings.terrainDetail0 = textureUUID;
|
m_scene.RegionInfo.EstateSettings.terrainDetail0 = textureUUID;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
m_regInfo.EstateSettings.terrainDetail1 = textureUUID;
|
m_scene.RegionInfo.EstateSettings.terrainDetail1 = textureUUID;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
m_regInfo.EstateSettings.terrainDetail2 = textureUUID;
|
m_scene.RegionInfo.EstateSettings.terrainDetail2 = textureUUID;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
m_regInfo.EstateSettings.terrainDetail3 = textureUUID;
|
m_scene.RegionInfo.EstateSettings.terrainDetail3 = textureUUID;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -136,16 +131,17 @@ namespace OpenSim.Region.Environment
|
||||||
bool UseFixedSun, float SunHour)
|
bool UseFixedSun, float SunHour)
|
||||||
{
|
{
|
||||||
// Water Height
|
// Water Height
|
||||||
m_regInfo.EstateSettings.waterHeight = WaterHeight;
|
m_scene.RegionInfo.EstateSettings.waterHeight = WaterHeight;
|
||||||
|
|
||||||
// Terraforming limits
|
// Terraforming limits
|
||||||
m_regInfo.EstateSettings.terrainRaiseLimit = TerrainRaiseLimit;
|
m_scene.RegionInfo.EstateSettings.terrainRaiseLimit = TerrainRaiseLimit;
|
||||||
m_regInfo.EstateSettings.terrainLowerLimit = TerrainLowerLimit;
|
m_scene.RegionInfo.EstateSettings.terrainLowerLimit = TerrainLowerLimit;
|
||||||
|
|
||||||
// Time of day / fixed sun
|
// Time of day / fixed sun
|
||||||
m_regInfo.EstateSettings.useFixedSun = UseFixedSun;
|
m_scene.RegionInfo.EstateSettings.useFixedSun = UseFixedSun;
|
||||||
m_regInfo.EstateSettings.sunHour = SunHour;
|
m_scene.RegionInfo.EstateSettings.sunHour = SunHour;
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Packet Handlers
|
#region Packet Handlers
|
||||||
|
|
||||||
|
@ -224,7 +220,7 @@ namespace OpenSim.Region.Environment
|
||||||
case "teleporthomeuser":
|
case "teleporthomeuser":
|
||||||
if (m_scene.PermissionsMngr.GenericEstatePermission(remote_client.AgentId))
|
if (m_scene.PermissionsMngr.GenericEstatePermission(remote_client.AgentId))
|
||||||
{
|
{
|
||||||
TeleportOneUserHome(remote_client,packet);
|
TeleportOneUserHome(remote_client, packet);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -235,13 +231,13 @@ namespace OpenSim.Region.Environment
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TeleportOneUserHome(object remove_client,EstateOwnerMessagePacket packet)
|
private void TeleportOneUserHome(object remove_client, EstateOwnerMessagePacket packet)
|
||||||
{
|
{
|
||||||
LLUUID invoice = packet.MethodData.Invoice;
|
LLUUID invoice = packet.MethodData.Invoice;
|
||||||
LLUUID SenderID = packet.AgentData.AgentID;
|
LLUUID SenderID = packet.AgentData.AgentID;
|
||||||
LLUUID Prey = LLUUID.Zero;
|
LLUUID Prey = LLUUID.Zero;
|
||||||
|
|
||||||
Helpers.TryParse(Helpers.FieldToUTF8String(packet.ParamList[1].Parameter),out Prey);
|
Helpers.TryParse(Helpers.FieldToUTF8String(packet.ParamList[1].Parameter), out Prey);
|
||||||
if (Prey != LLUUID.Zero)
|
if (Prey != LLUUID.Zero)
|
||||||
{
|
{
|
||||||
ScenePresence s = m_scene.GetScenePresence(Prey);
|
ScenePresence s = m_scene.GetScenePresence(Prey);
|
||||||
|
@ -382,19 +378,19 @@ namespace OpenSim.Region.Environment
|
||||||
{
|
{
|
||||||
case 256:
|
case 256:
|
||||||
|
|
||||||
// This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
|
// This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
|
||||||
// So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
|
// So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
|
||||||
if (packet.AgentData.AgentID == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.PermissionsMngr.BypassPermissions)
|
if (packet.AgentData.AgentID == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.PermissionsMngr.BypassPermissions)
|
||||||
{
|
{
|
||||||
m_scene.RegionInfo.EstateSettings.AddEstateManager(new LLUUID(Helpers.FieldToUTF8String(packet.ParamList[2].Parameter)));
|
m_scene.RegionInfo.EstateSettings.AddEstateManager(new LLUUID(Helpers.FieldToUTF8String(packet.ParamList[2].Parameter)));
|
||||||
sendEstateManagerList(remote_client, packet);
|
sendEstateManagerList(remote_client, packet);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
|
remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 512:
|
case 512:
|
||||||
// This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
|
// This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml
|
||||||
// So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
|
// So make sure you really trust your region owners. because they can add other estate manaagers to your other estates
|
||||||
|
@ -409,10 +405,10 @@ namespace OpenSim.Region.Environment
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
m_log.Error("EstateOwnerMessage: Unknown EstateAccessType requested in estateAccessDelta\n" + packet.ToString());
|
m_log.Error("EstateOwnerMessage: Unknown EstateAccessType requested in estateAccessDelta\n" + packet.ToString());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//m_log.Error("EstateOwnerMessage: estateAccessDelta\n" + packet.ToString());
|
//m_log.Error("EstateOwnerMessage: estateAccessDelta\n" + packet.ToString());
|
||||||
|
|
||||||
|
@ -426,54 +422,54 @@ namespace OpenSim.Region.Environment
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_regInfo.EstateSettings.regionFlags = Simulator.RegionFlags.None;
|
m_scene.RegionInfo.EstateSettings.regionFlags = Simulator.RegionFlags.None;
|
||||||
|
|
||||||
if (convertParamStringToBool(packet.ParamList[0].Parameter))
|
if (convertParamStringToBool(packet.ParamList[0].Parameter))
|
||||||
{
|
{
|
||||||
m_regInfo.EstateSettings.regionFlags = m_regInfo.EstateSettings.regionFlags |
|
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
|
||||||
Simulator.RegionFlags.BlockTerraform;
|
Simulator.RegionFlags.BlockTerraform;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (convertParamStringToBool(packet.ParamList[1].Parameter))
|
if (convertParamStringToBool(packet.ParamList[1].Parameter))
|
||||||
{
|
{
|
||||||
m_regInfo.EstateSettings.regionFlags = m_regInfo.EstateSettings.regionFlags |
|
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
|
||||||
Simulator.RegionFlags.NoFly;
|
Simulator.RegionFlags.NoFly;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (convertParamStringToBool(packet.ParamList[2].Parameter))
|
if (convertParamStringToBool(packet.ParamList[2].Parameter))
|
||||||
{
|
{
|
||||||
m_regInfo.EstateSettings.regionFlags = m_regInfo.EstateSettings.regionFlags |
|
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
|
||||||
Simulator.RegionFlags.AllowDamage;
|
Simulator.RegionFlags.AllowDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (convertParamStringToBool(packet.ParamList[3].Parameter) == false)
|
if (convertParamStringToBool(packet.ParamList[3].Parameter) == false)
|
||||||
{
|
{
|
||||||
m_regInfo.EstateSettings.regionFlags = m_regInfo.EstateSettings.regionFlags |
|
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
|
||||||
Simulator.RegionFlags.BlockLandResell;
|
Simulator.RegionFlags.BlockLandResell;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int tempMaxAgents =
|
int tempMaxAgents =
|
||||||
Convert.ToInt16(Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[4].Parameter)));
|
Convert.ToInt16(Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[4].Parameter)));
|
||||||
m_regInfo.EstateSettings.maxAgents = (byte) tempMaxAgents;
|
m_scene.RegionInfo.EstateSettings.maxAgents = (byte)tempMaxAgents;
|
||||||
|
|
||||||
float tempObjectBonusFactor =
|
float tempObjectBonusFactor =
|
||||||
(float) Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[5].Parameter));
|
(float)Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[5].Parameter));
|
||||||
m_regInfo.EstateSettings.objectBonusFactor = tempObjectBonusFactor;
|
m_scene.RegionInfo.EstateSettings.objectBonusFactor = tempObjectBonusFactor;
|
||||||
|
|
||||||
int tempMatureLevel = Convert.ToInt16(Helpers.FieldToUTF8String(packet.ParamList[6].Parameter));
|
int tempMatureLevel = Convert.ToInt16(Helpers.FieldToUTF8String(packet.ParamList[6].Parameter));
|
||||||
m_regInfo.EstateSettings.simAccess = (Simulator.SimAccess) tempMatureLevel;
|
m_scene.RegionInfo.EstateSettings.simAccess = (Simulator.SimAccess)tempMatureLevel;
|
||||||
|
|
||||||
|
|
||||||
if (convertParamStringToBool(packet.ParamList[7].Parameter))
|
if (convertParamStringToBool(packet.ParamList[7].Parameter))
|
||||||
{
|
{
|
||||||
m_regInfo.EstateSettings.regionFlags = m_regInfo.EstateSettings.regionFlags |
|
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
|
||||||
Simulator.RegionFlags.RestrictPushObject;
|
Simulator.RegionFlags.RestrictPushObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (convertParamStringToBool(packet.ParamList[8].Parameter))
|
if (convertParamStringToBool(packet.ParamList[8].Parameter))
|
||||||
{
|
{
|
||||||
m_regInfo.EstateSettings.regionFlags = m_regInfo.EstateSettings.regionFlags |
|
m_scene.RegionInfo.EstateSettings.regionFlags = m_scene.RegionInfo.EstateSettings.regionFlags |
|
||||||
Simulator.RegionFlags.AllowParcelChanges;
|
Simulator.RegionFlags.AllowParcelChanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -524,8 +520,8 @@ namespace OpenSim.Region.Environment
|
||||||
if (splitField.Length == 3)
|
if (splitField.Length == 3)
|
||||||
{
|
{
|
||||||
Int16 corner = Convert.ToInt16(splitField[0]);
|
Int16 corner = Convert.ToInt16(splitField[0]);
|
||||||
float lowValue = (float) Convert.ToDecimal(splitField[1]);
|
float lowValue = (float)Convert.ToDecimal(splitField[1]);
|
||||||
float highValue = (float) Convert.ToDecimal(splitField[2]);
|
float highValue = (float)Convert.ToDecimal(splitField[2]);
|
||||||
|
|
||||||
setEstateTextureRange(corner, lowValue, highValue);
|
setEstateTextureRange(corner, lowValue, highValue);
|
||||||
}
|
}
|
||||||
|
@ -560,16 +556,16 @@ namespace OpenSim.Region.Environment
|
||||||
switch (Convert.ToInt16(splitField[0]))
|
switch (Convert.ToInt16(splitField[0]))
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
m_regInfo.EstateSettings.terrainBase0 = tempUUID;
|
m_scene.RegionInfo.EstateSettings.terrainBase0 = tempUUID;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
m_regInfo.EstateSettings.terrainBase1 = tempUUID;
|
m_scene.RegionInfo.EstateSettings.terrainBase1 = tempUUID;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
m_regInfo.EstateSettings.terrainBase2 = tempUUID;
|
m_scene.RegionInfo.EstateSettings.terrainBase2 = tempUUID;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
m_regInfo.EstateSettings.terrainBase3 = tempUUID;
|
m_scene.RegionInfo.EstateSettings.terrainBase3 = tempUUID;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -594,7 +590,7 @@ namespace OpenSim.Region.Environment
|
||||||
foreach (EstateOwnerMessagePacket.ParamListBlock block in packet.ParamList)
|
foreach (EstateOwnerMessagePacket.ParamListBlock block in packet.ParamList)
|
||||||
{
|
{
|
||||||
LLUUID newCovenantID = new LLUUID(Helpers.FieldToUTF8String(block.Parameter));
|
LLUUID newCovenantID = new LLUUID(Helpers.FieldToUTF8String(block.Parameter));
|
||||||
m_regInfo.CovenantID = newCovenantID;
|
m_scene.RegionInfo.CovenantID = newCovenantID;
|
||||||
m_scene.RegionInfo.SaveEstatecovenantUUID(newCovenantID);
|
m_scene.RegionInfo.SaveEstatecovenantUUID(newCovenantID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -605,22 +601,22 @@ namespace OpenSim.Region.Environment
|
||||||
RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock();
|
RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock();
|
||||||
rinfopack.AgentData.AgentID = client.AgentId;
|
rinfopack.AgentData.AgentID = client.AgentId;
|
||||||
rinfopack.AgentData.SessionID = client.SessionId;
|
rinfopack.AgentData.SessionID = client.SessionId;
|
||||||
rinfoblk.BillableFactor = m_regInfo.EstateSettings.billableFactor;
|
rinfoblk.BillableFactor = m_scene.RegionInfo.EstateSettings.billableFactor;
|
||||||
rinfoblk.EstateID = m_regInfo.EstateSettings.estateID;
|
rinfoblk.EstateID = m_scene.RegionInfo.EstateSettings.estateID;
|
||||||
rinfoblk.MaxAgents = m_regInfo.EstateSettings.maxAgents;
|
rinfoblk.MaxAgents = m_scene.RegionInfo.EstateSettings.maxAgents;
|
||||||
rinfoblk.ObjectBonusFactor = m_regInfo.EstateSettings.objectBonusFactor;
|
rinfoblk.ObjectBonusFactor = m_scene.RegionInfo.EstateSettings.objectBonusFactor;
|
||||||
rinfoblk.ParentEstateID = m_regInfo.EstateSettings.parentEstateID;
|
rinfoblk.ParentEstateID = m_scene.RegionInfo.EstateSettings.parentEstateID;
|
||||||
rinfoblk.PricePerMeter = m_regInfo.EstateSettings.pricePerMeter;
|
rinfoblk.PricePerMeter = m_scene.RegionInfo.EstateSettings.pricePerMeter;
|
||||||
rinfoblk.RedirectGridX = m_regInfo.EstateSettings.redirectGridX;
|
rinfoblk.RedirectGridX = m_scene.RegionInfo.EstateSettings.redirectGridX;
|
||||||
rinfoblk.RedirectGridY = m_regInfo.EstateSettings.redirectGridY;
|
rinfoblk.RedirectGridY = m_scene.RegionInfo.EstateSettings.redirectGridY;
|
||||||
rinfoblk.RegionFlags = (uint)( m_regInfo.EstateSettings.regionFlags);
|
rinfoblk.RegionFlags = (uint)(m_scene.RegionInfo.EstateSettings.regionFlags);
|
||||||
rinfoblk.SimAccess = (byte) m_regInfo.EstateSettings.simAccess;
|
rinfoblk.SimAccess = (byte)m_scene.RegionInfo.EstateSettings.simAccess;
|
||||||
rinfoblk.SunHour = m_regInfo.EstateSettings.sunHour;
|
rinfoblk.SunHour = m_scene.RegionInfo.EstateSettings.sunHour;
|
||||||
rinfoblk.TerrainLowerLimit = m_regInfo.EstateSettings.terrainLowerLimit;
|
rinfoblk.TerrainLowerLimit = m_scene.RegionInfo.EstateSettings.terrainLowerLimit;
|
||||||
rinfoblk.TerrainRaiseLimit = m_regInfo.EstateSettings.terrainRaiseLimit;
|
rinfoblk.TerrainRaiseLimit = m_scene.RegionInfo.EstateSettings.terrainRaiseLimit;
|
||||||
rinfoblk.UseEstateSun = !m_regInfo.EstateSettings.useFixedSun;
|
rinfoblk.UseEstateSun = !m_scene.RegionInfo.EstateSettings.useFixedSun;
|
||||||
rinfoblk.WaterHeight = m_regInfo.EstateSettings.waterHeight;
|
rinfoblk.WaterHeight = m_scene.RegionInfo.EstateSettings.waterHeight;
|
||||||
rinfoblk.SimName = Helpers.StringToField(m_regInfo.RegionName);
|
rinfoblk.SimName = Helpers.StringToField(m_scene.RegionInfo.RegionName);
|
||||||
|
|
||||||
rinfopack.RegionInfo = rinfoblk;
|
rinfopack.RegionInfo = rinfoblk;
|
||||||
|
|
||||||
|
@ -631,11 +627,11 @@ namespace OpenSim.Region.Environment
|
||||||
{
|
{
|
||||||
EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket();
|
EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket();
|
||||||
EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
|
EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
|
||||||
edata.CovenantID = m_regInfo.CovenantID;
|
edata.CovenantID = m_scene.RegionInfo.CovenantID;
|
||||||
edata.CovenantTimestamp = 0;
|
edata.CovenantTimestamp = 0;
|
||||||
edata.EstateOwnerID = m_regInfo.MasterAvatarAssignedUUID;
|
edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
|
||||||
edata.EstateName =
|
edata.EstateName =
|
||||||
Helpers.StringToField(m_regInfo.MasterAvatarFirstName + " " + m_regInfo.MasterAvatarLastName);
|
Helpers.StringToField(m_scene.RegionInfo.MasterAvatarFirstName + " " + m_scene.RegionInfo.MasterAvatarLastName);
|
||||||
einfopack.Data = edata;
|
einfopack.Data = edata;
|
||||||
client.OutPacket(einfopack, ThrottleOutPacketType.Task);
|
client.OutPacket(einfopack, ThrottleOutPacketType.Task);
|
||||||
}
|
}
|
||||||
|
@ -668,22 +664,22 @@ namespace OpenSim.Region.Environment
|
||||||
RegionInfoPacket regionInfoPacket = new RegionInfoPacket();
|
RegionInfoPacket regionInfoPacket = new RegionInfoPacket();
|
||||||
regionInfoPacket.AgentData.AgentID = circuitData.AgentID;
|
regionInfoPacket.AgentData.AgentID = circuitData.AgentID;
|
||||||
regionInfoPacket.AgentData.SessionID = circuitData.SessionID;
|
regionInfoPacket.AgentData.SessionID = circuitData.SessionID;
|
||||||
regionInfoPacket.RegionInfo.BillableFactor = m_regInfo.EstateSettings.billableFactor;
|
regionInfoPacket.RegionInfo.BillableFactor = m_scene.RegionInfo.EstateSettings.billableFactor;
|
||||||
regionInfoPacket.RegionInfo.EstateID = m_regInfo.EstateSettings.estateID;
|
regionInfoPacket.RegionInfo.EstateID = m_scene.RegionInfo.EstateSettings.estateID;
|
||||||
regionInfoPacket.RegionInfo.MaxAgents = m_regInfo.EstateSettings.maxAgents;
|
regionInfoPacket.RegionInfo.MaxAgents = m_scene.RegionInfo.EstateSettings.maxAgents;
|
||||||
regionInfoPacket.RegionInfo.ObjectBonusFactor = m_regInfo.EstateSettings.objectBonusFactor;
|
regionInfoPacket.RegionInfo.ObjectBonusFactor = m_scene.RegionInfo.EstateSettings.objectBonusFactor;
|
||||||
regionInfoPacket.RegionInfo.ParentEstateID = m_regInfo.EstateSettings.parentEstateID;
|
regionInfoPacket.RegionInfo.ParentEstateID = m_scene.RegionInfo.EstateSettings.parentEstateID;
|
||||||
regionInfoPacket.RegionInfo.PricePerMeter = m_regInfo.EstateSettings.pricePerMeter;
|
regionInfoPacket.RegionInfo.PricePerMeter = m_scene.RegionInfo.EstateSettings.pricePerMeter;
|
||||||
regionInfoPacket.RegionInfo.RedirectGridX = m_regInfo.EstateSettings.redirectGridX;
|
regionInfoPacket.RegionInfo.RedirectGridX = m_scene.RegionInfo.EstateSettings.redirectGridX;
|
||||||
regionInfoPacket.RegionInfo.RedirectGridY = m_regInfo.EstateSettings.redirectGridY;
|
regionInfoPacket.RegionInfo.RedirectGridY = m_scene.RegionInfo.EstateSettings.redirectGridY;
|
||||||
regionInfoPacket.RegionInfo.RegionFlags = (uint)(m_regInfo.EstateSettings.regionFlags);
|
regionInfoPacket.RegionInfo.RegionFlags = (uint)(m_scene.RegionInfo.EstateSettings.regionFlags);
|
||||||
regionInfoPacket.RegionInfo.SimAccess = (byte) m_regInfo.EstateSettings.simAccess;
|
regionInfoPacket.RegionInfo.SimAccess = (byte)m_scene.RegionInfo.EstateSettings.simAccess;
|
||||||
regionInfoPacket.RegionInfo.SimName = Helpers.StringToField(m_regInfo.RegionName);
|
regionInfoPacket.RegionInfo.SimName = Helpers.StringToField(m_scene.RegionInfo.RegionName);
|
||||||
regionInfoPacket.RegionInfo.SunHour = m_regInfo.EstateSettings.sunHour;
|
regionInfoPacket.RegionInfo.SunHour = m_scene.RegionInfo.EstateSettings.sunHour;
|
||||||
regionInfoPacket.RegionInfo.TerrainLowerLimit = m_regInfo.EstateSettings.terrainLowerLimit;
|
regionInfoPacket.RegionInfo.TerrainLowerLimit = m_scene.RegionInfo.EstateSettings.terrainLowerLimit;
|
||||||
regionInfoPacket.RegionInfo.TerrainRaiseLimit = m_regInfo.EstateSettings.terrainRaiseLimit;
|
regionInfoPacket.RegionInfo.TerrainRaiseLimit = m_scene.RegionInfo.EstateSettings.terrainRaiseLimit;
|
||||||
regionInfoPacket.RegionInfo.UseEstateSun = !m_regInfo.EstateSettings.useFixedSun;
|
regionInfoPacket.RegionInfo.UseEstateSun = !m_scene.RegionInfo.EstateSettings.useFixedSun;
|
||||||
regionInfoPacket.RegionInfo.WaterHeight = m_regInfo.EstateSettings.waterHeight;
|
regionInfoPacket.RegionInfo.WaterHeight = m_scene.RegionInfo.EstateSettings.waterHeight;
|
||||||
|
|
||||||
|
|
||||||
remote_client.OutPacket(regionInfoPacket, ThrottleOutPacketType.Task);
|
remote_client.OutPacket(regionInfoPacket, ThrottleOutPacketType.Task);
|
||||||
|
@ -691,9 +687,58 @@ namespace OpenSim.Region.Environment
|
||||||
|
|
||||||
public void sendRegionHandshake(IClientAPI remoteClient)
|
public void sendRegionHandshake(IClientAPI remoteClient)
|
||||||
{
|
{
|
||||||
remoteClient.SendRegionHandshake(m_regInfo);
|
remoteClient.SendRegionHandshake(m_scene.RegionInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region IRegionModule Members
|
||||||
|
|
||||||
|
public void Initialise(Scene scene, IConfigSource source)
|
||||||
|
{
|
||||||
|
m_scene = scene;
|
||||||
|
m_scene.EventManager.OnNewClient += new EventManager.OnNewClientDelegate(EventManager_OnNewClient);
|
||||||
|
m_scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EventManager_OnNewClient(IClientAPI client)
|
||||||
|
{
|
||||||
|
client.OnEstateOwnerMessage += handleEstateOwnerMessage;
|
||||||
|
client.OnRegionInfoRequest += HandleRegionInfoRequest;
|
||||||
|
client.OnEstateCovenantRequest += HandleEstateCovenantRequest;
|
||||||
|
sendRegionHandshake(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void PostInitialise()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Close()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Name
|
||||||
|
{
|
||||||
|
get { return "EstateManagementModule"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsSharedModule
|
||||||
|
{
|
||||||
|
get { return false; }
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Other Functions
|
||||||
|
|
||||||
|
public void changeWaterHeight(float height)
|
||||||
|
{
|
||||||
|
setRegionSettings(height, m_scene.RegionInfo.EstateSettings.terrainRaiseLimit, m_scene.RegionInfo.EstateSettings.terrainLowerLimit, m_scene.RegionInfo.EstateSettings.useFixedSun, m_scene.RegionInfo.EstateSettings.sunHour);
|
||||||
|
sendRegionInfoPacketToAll();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -153,7 +153,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
get { return m_authenticateHandler; }
|
get { return m_authenticateHandler; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected readonly EstateManager m_estateManager;
|
|
||||||
// an instance to the physics plugin's Scene object.
|
// an instance to the physics plugin's Scene object.
|
||||||
public PhysicsScene PhysicsScene
|
public PhysicsScene PhysicsScene
|
||||||
{
|
{
|
||||||
|
@ -167,11 +166,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
get { return m_innerScene.m_syncRoot; }
|
get { return m_innerScene.m_syncRoot; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public EstateManager EstateManager
|
|
||||||
{
|
|
||||||
get { return m_estateManager; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public float TimeDilation
|
public float TimeDilation
|
||||||
{
|
{
|
||||||
get { return m_timedilation; }
|
get { return m_timedilation; }
|
||||||
|
@ -256,8 +250,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
EventManager.OnLandObjectRemoved +=
|
EventManager.OnLandObjectRemoved +=
|
||||||
new EventManager.LandObjectRemoved(m_storageManager.DataStore.RemoveLandObject);
|
new EventManager.LandObjectRemoved(m_storageManager.DataStore.RemoveLandObject);
|
||||||
|
|
||||||
m_estateManager = new EstateManager(this, m_regInfo);
|
|
||||||
|
|
||||||
m_permissionManager = permissionManager;
|
m_permissionManager = permissionManager;
|
||||||
m_permissionManager.Initialise(this);
|
m_permissionManager.Initialise(this);
|
||||||
|
|
||||||
|
@ -1514,8 +1506,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
m_log.Info("[REGION]: Add New Scene Presence");
|
m_log.Info("[REGION]: Add New Scene Presence");
|
||||||
|
|
||||||
m_estateManager.sendRegionHandshake(client);
|
|
||||||
|
|
||||||
CreateAndAddScenePresence(client, child);
|
CreateAndAddScenePresence(client, child);
|
||||||
|
|
||||||
LandChannel.sendParcelOverlay(client);
|
LandChannel.sendParcelOverlay(client);
|
||||||
|
@ -1572,9 +1562,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
client.OnParcelAccessListUpdateRequest +=
|
client.OnParcelAccessListUpdateRequest +=
|
||||||
new ParcelAccessListUpdateRequest(LandChannel.handleParcelAccessUpdateRequest);
|
new ParcelAccessListUpdateRequest(LandChannel.handleParcelAccessUpdateRequest);
|
||||||
|
|
||||||
client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage);
|
|
||||||
client.OnRegionInfoRequest += m_estateManager.HandleRegionInfoRequest;
|
|
||||||
client.OnEstateCovenantRequest += m_estateManager.HandleEstateCovenantRequest;
|
|
||||||
client.OnRequestGodlikePowers += handleRequestGodlikePowers;
|
client.OnRequestGodlikePowers += handleRequestGodlikePowers;
|
||||||
client.OnGodKickUser += HandleGodlikeKickUser;
|
client.OnGodKickUser += HandleGodlikeKickUser;
|
||||||
client.OnObjectPermissions += HandleObjectPermissionsUpdate;
|
client.OnObjectPermissions += HandleObjectPermissionsUpdate;
|
||||||
|
|
|
@ -151,6 +151,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
public event NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete;
|
public event NewInventoryItemUploadComplete OnNewInventoryItemUploadComplete;
|
||||||
|
|
||||||
|
public delegate void RequestChangeWaterHeight(float height);
|
||||||
|
|
||||||
|
public event RequestChangeWaterHeight OnRequestChangeWaterHeight;
|
||||||
|
|
||||||
public delegate void AvatarKillData(uint KillerLocalID, ScenePresence avatar);
|
public delegate void AvatarKillData(uint KillerLocalID, ScenePresence avatar);
|
||||||
|
|
||||||
public event AvatarKillData OnAvatarKilled;
|
public event AvatarKillData OnAvatarKilled;
|
||||||
|
@ -269,6 +273,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
private RegisterCapsEvent handlerRegisterCaps = null; // OnRegisterCaps;
|
private RegisterCapsEvent handlerRegisterCaps = null; // OnRegisterCaps;
|
||||||
private DeregisterCapsEvent handlerDeregisterCaps = null; // OnDeregisterCaps;
|
private DeregisterCapsEvent handlerDeregisterCaps = null; // OnDeregisterCaps;
|
||||||
private NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = null;
|
private NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = null;
|
||||||
|
private RequestChangeWaterHeight handlerRequestChangeWaterHeight = null; //OnRequestChangeWaterHeight
|
||||||
|
|
||||||
private LandBuy handlerLandBuy = null;
|
private LandBuy handlerLandBuy = null;
|
||||||
private LandBuy handlerValidateLandBuy = null;
|
private LandBuy handlerValidateLandBuy = null;
|
||||||
private AvatarKillData handlerAvatarKill = null;
|
private AvatarKillData handlerAvatarKill = null;
|
||||||
|
@ -579,6 +585,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
handlerScriptNotAtTargetEvent(localID);
|
handlerScriptNotAtTargetEvent(localID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void TriggerRequestChangeWaterHeight(float height)
|
||||||
|
{
|
||||||
|
handlerRequestChangeWaterHeight = OnRequestChangeWaterHeight;
|
||||||
|
if (handlerRequestChangeWaterHeight != null)
|
||||||
|
{
|
||||||
|
handlerRequestChangeWaterHeight(height);
|
||||||
|
}
|
||||||
|
}
|
||||||
public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar)
|
public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar)
|
||||||
{
|
{
|
||||||
handlerAvatarKill = OnAvatarKilled;
|
handlerAvatarKill = OnAvatarKilled;
|
||||||
|
|
|
@ -183,8 +183,7 @@ namespace OpenSim.Region.ScriptEngine.Common
|
||||||
//World.PermissionsMngr.GenericEstatePermission(
|
//World.PermissionsMngr.GenericEstatePermission(
|
||||||
if (World.PermissionsMngr.GenericEstatePermission(m_host.OwnerID))
|
if (World.PermissionsMngr.GenericEstatePermission(m_host.OwnerID))
|
||||||
{
|
{
|
||||||
World.EstateManager.setRegionSettings((float)height, 0f, 0f, false, 0.5f);
|
World.EventManager.TriggerRequestChangeWaterHeight((float)height);
|
||||||
World.EstateManager.sendRegionInfoPacketToAll();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue