2first dirty version and non persistent parcel uglysky

This commit is contained in:
UbitUmarov
2020-06-17 15:49:13 +01:00
parent 7a9e03876a
commit e538628dec
7 changed files with 291 additions and 195 deletions

View File

@@ -168,8 +168,9 @@ namespace OpenSim.Region.CoreModules.World.Estate
if (Scene.RegionInfo.RegionSettings.Casino)
flags |= (RegionFlags)(1 << 10);
if (Scene.RegionInfo.RegionSettings.FixedSun)
flags |= RegionFlags.SunFixed;
// if (Scene.RegionInfo.RegionSettings.FixedSun)
// flags |= RegionFlags.SunFixed;
if (Scene.RegionInfo.RegionSettings.Sandbox)
flags |= RegionFlags.Sandbox;
if (Scene.RegionInfo.EstateSettings.AllowVoice)
@@ -190,7 +191,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
// Omitted
//
// Omitted: NullLayer (what is that?)
// Omitted: SkipAgentAction (what does it do?)
return (uint)flags;
@@ -428,10 +428,10 @@ namespace OpenSim.Region.CoreModules.World.Estate
private void sendDetailedEstateData(IClientAPI remote_client, UUID invoice)
{
uint sun = 0;
//uint sun = 0;
if (Scene.RegionInfo.EstateSettings.FixedSun)
sun = (uint)(Scene.RegionInfo.EstateSettings.SunPosition * 1024.0) + 0x1800;
//if (Scene.RegionInfo.EstateSettings.FixedSun)
// sun = (uint)(Scene.RegionInfo.EstateSettings.SunPosition * 1024.0) + 0x1800;
UUID estateOwner;
estateOwner = Scene.RegionInfo.EstateSettings.EstateOwner;
@@ -443,7 +443,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.RegionInfo.EstateSettings.EstateID,
Scene.RegionInfo.EstateSettings.ParentEstateID,
GetEstateFlags(),
sun,
0,
Scene.RegionInfo.RegionSettings.Covenant,
(uint) Scene.RegionInfo.RegionSettings.CovenantChangedDateTime,
Scene.RegionInfo.EstateSettings.AbuseEmail,
@@ -598,11 +598,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.RegionInfo.RegionSettings.TerrainLowerLimit = TerrainLowerLimit;
// Time of day / fixed sun
Scene.RegionInfo.RegionSettings.UseEstateSun = UseEstateSun;
Scene.RegionInfo.RegionSettings.FixedSun = UseFixedSun;
Scene.RegionInfo.RegionSettings.SunPosition = SunHour;
//Scene.RegionInfo.RegionSettings.UseEstateSun = UseEstateSun;
//Scene.RegionInfo.RegionSettings.FixedSun = UseFixedSun;
//Scene.RegionInfo.RegionSettings.SunPosition = SunHour;
if(Scene.PhysicsEnabled && Scene.PhysicsScene != null && lastwaterlevel != WaterHeight)
if (Scene.PhysicsEnabled && Scene.PhysicsScene != null && lastwaterlevel != WaterHeight)
Scene.PhysicsScene.SetWaterLevel(WaterHeight);
Scene.TriggerEstateSunUpdate();
@@ -1405,28 +1405,28 @@ namespace OpenSim.Region.CoreModules.World.Estate
public void HandleRegionInfoRequest(IClientAPI remote_client)
{
RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs();
args.billableFactor = Scene.RegionInfo.EstateSettings.BillableFactor;
args.estateID = Scene.RegionInfo.EstateSettings.EstateID;
args.maxAgents = Scene.RegionInfo.RegionSettings.AgentLimit;
args.objectBonusFactor = (float)Scene.RegionInfo.RegionSettings.ObjectBonus;
args.parentEstateID = Scene.RegionInfo.EstateSettings.ParentEstateID;
args.pricePerMeter = Scene.RegionInfo.EstateSettings.PricePerMeter;
args.redirectGridX = Scene.RegionInfo.EstateSettings.RedirectGridX;
args.redirectGridY = Scene.RegionInfo.EstateSettings.RedirectGridY;
args.regionFlags = GetRegionFlags();
args.simAccess = Scene.RegionInfo.AccessLevel;
args.sunHour = (float)Scene.RegionInfo.RegionSettings.SunPosition;
args.terrainLowerLimit = (float)Scene.RegionInfo.RegionSettings.TerrainLowerLimit;
args.terrainRaiseLimit = (float)Scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
args.useEstateSun = Scene.RegionInfo.RegionSettings.UseEstateSun;
args.waterHeight = (float)Scene.RegionInfo.RegionSettings.WaterHeight;
args.simName = Scene.RegionInfo.RegionName;
args.regionType = Scene.RegionInfo.RegionType;
args.AgentCapacity = Scene.RegionInfo.AgentCapacity;
args.ObjectsCapacity = Scene.RegionInfo.ObjectCapacity;
RegionInfoForEstateMenuArgs args = new RegionInfoForEstateMenuArgs();
args.billableFactor = Scene.RegionInfo.EstateSettings.BillableFactor;
args.estateID = Scene.RegionInfo.EstateSettings.EstateID;
args.maxAgents = Scene.RegionInfo.RegionSettings.AgentLimit;
args.objectBonusFactor = (float)Scene.RegionInfo.RegionSettings.ObjectBonus;
args.parentEstateID = Scene.RegionInfo.EstateSettings.ParentEstateID;
args.pricePerMeter = Scene.RegionInfo.EstateSettings.PricePerMeter;
args.redirectGridX = Scene.RegionInfo.EstateSettings.RedirectGridX;
args.redirectGridY = Scene.RegionInfo.EstateSettings.RedirectGridY;
args.regionFlags = GetRegionFlags();
args.simAccess = Scene.RegionInfo.AccessLevel;
args.sunHour = 0;
args.terrainLowerLimit = (float)Scene.RegionInfo.RegionSettings.TerrainLowerLimit;
args.terrainRaiseLimit = (float)Scene.RegionInfo.RegionSettings.TerrainRaiseLimit;
args.useEstateSun = false;
args.waterHeight = (float)Scene.RegionInfo.RegionSettings.WaterHeight;
args.simName = Scene.RegionInfo.RegionName;
args.regionType = Scene.RegionInfo.RegionType;
args.AgentCapacity = Scene.RegionInfo.AgentCapacity;
args.ObjectsCapacity = Scene.RegionInfo.ObjectCapacity;
remote_client.SendRegionInfoToEstateMenu(args);
remote_client.SendRegionInfoToEstateMenu(args);
}
private void HandleEstateCovenantRequest(IClientAPI remote_client)
@@ -1529,28 +1529,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
public void handleEstateChangeInfo(IClientAPI remoteClient, UUID invoice, UUID senderID, UInt32 parms1, UInt32 parms2)
{
if (parms2 == 0)
{
Scene.RegionInfo.EstateSettings.UseGlobalTime = true;
Scene.RegionInfo.EstateSettings.SunPosition = 0.0;
}
else
{
Scene.RegionInfo.EstateSettings.UseGlobalTime = false;
Scene.RegionInfo.EstateSettings.SunPosition = (parms2 - 0x1800)/1024.0;
// Warning: FixedSun should be set to True, otherwise this sun position won't be used.
}
if ((parms1 & 0x00008000) != 0)
Scene.RegionInfo.EstateSettings.PublicAccess = true;
else
Scene.RegionInfo.EstateSettings.PublicAccess = false;
if ((parms1 & 0x00000010) != 0)
Scene.RegionInfo.EstateSettings.FixedSun = true;
else
Scene.RegionInfo.EstateSettings.FixedSun = false;
// taxfree is now !AllowAccessOverride (note the negate)
if ((parms1 & 0x00000020) != 0)
Scene.RegionInfo.EstateSettings.TaxFree = false;
@@ -1597,33 +1580,18 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings);
TriggerEstateInfoChange();
Scene.TriggerEstateSunUpdate();
sendDetailedEstateData(remoteClient, invoice);
}
public bool handleEstateChangeInfoCap(string estateName, UUID invoice,
int sunHour, bool sunFixed,
bool externallyVisible,
bool allowDirectTeleport,
bool denyAnonymous, bool denyAgeUnverified,
bool alloVoiceChat, bool overridePublicAccess,
bool allowEnviromentOverride)
{
if (sunHour == 0)
{
Scene.RegionInfo.EstateSettings.UseGlobalTime = true;
Scene.RegionInfo.EstateSettings.SunPosition = 0.0;
}
else
{
Scene.RegionInfo.EstateSettings.UseGlobalTime = false;
Scene.RegionInfo.EstateSettings.SunPosition = (sunHour - 0x1800) / 1024.0;
// Warning: FixedSun should be set to True, otherwise this sun position won't be used.
}
Scene.RegionInfo.EstateSettings.PublicAccess = externallyVisible;
Scene.RegionInfo.EstateSettings.FixedSun = sunFixed;
Scene.RegionInfo.EstateSettings.AllowDirectTeleport = allowDirectTeleport;
Scene.RegionInfo.EstateSettings.DenyAnonymous = denyAnonymous;
@@ -1637,8 +1605,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.EstateDataService.StoreEstateSettings(Scene.RegionInfo.EstateSettings);
TriggerEstateInfoChange();
Scene.TriggerEstateSunUpdate();
return true;
}
@@ -1654,8 +1620,10 @@ namespace OpenSim.Region.CoreModules.World.Estate
Scene.RegionInfo.RegionSettings.UseEstateSun,
Scene.RegionInfo.RegionSettings.FixedSun,
(float)Scene.RegionInfo.RegionSettings.SunPosition,
Scene.RegionInfo.EstateSettings.UseGlobalTime,
Scene.RegionInfo.EstateSettings.FixedSun,
//Scene.RegionInfo.EstateSettings.UseGlobalTime,
false,
//Scene.RegionInfo.EstateSettings.FixedSun,
false,
(float)Scene.RegionInfo.EstateSettings.SunPosition);
// sendRegionInfoPacketToAll(); already done by setRegionTerrainSettings
@@ -1691,7 +1659,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
client.OnLandStatRequest += HandleLandStatRequest;
}
public uint GetEstateFlags()
{
RegionFlags flags = RegionFlags.None;
@@ -1702,13 +1669,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
flags |= RegionFlags.AllowSetHome;
if (Scene.RegionInfo.EstateSettings.ResetHomeOnTeleport)
flags |= RegionFlags.ResetHomeOnTeleport;
if (Scene.RegionInfo.EstateSettings.FixedSun)
flags |= RegionFlags.SunFixed;
//if (Scene.RegionInfo.EstateSettings.FixedSun)
// flags |= RegionFlags.SunFixed;
if (!Scene.RegionInfo.EstateSettings.TaxFree) // this is now wrong means !ALLOW_ACCESS_OVERRIDE
flags |= RegionFlags.AllowParcelAccessOverride;
if(Scene.RegionInfo.EstateSettings.AllowEnviromentOverride)
flags |= RegionFlags.AllowEnviromentOverride;
if (Scene.RegionInfo.EstateSettings.PublicAccess) //??
flags |= (RegionFlags.PublicAllowed | RegionFlags.ExternallyVisible);
@@ -1732,10 +1697,12 @@ namespace OpenSim.Region.CoreModules.World.Estate
if (Scene.RegionInfo.EstateSettings.AllowVoice)
flags |= RegionFlags.AllowVoice;
if (Scene.RegionInfo.EstateSettings.DenyMinors)
flags |= RegionFlags.DenyAgeUnverified;
if (Scene.RegionInfo.EstateSettings.AllowEnviromentOverride)
flags |= RegionFlags.AllowEnviromentOverride;
return (uint)flags;
}