diff --git a/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs b/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs
index ec26b43e98..baade4f850 100644
--- a/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs
+++ b/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs
@@ -80,18 +80,6 @@ namespace OpenSim.Framework
rwLock.EnterWriteLock();
gotLock = true;
}
-/*
- if (Dictionary1.ContainsKey(key1))
- {
- if (!Dictionary2.ContainsKey(key2))
- throw new ArgumentException("key1 exists in the dictionary but not key2");
- }
- else if (Dictionary2.ContainsKey(key2))
- {
- if (!Dictionary1.ContainsKey(key1))
- throw new ArgumentException("key2 exists in the dictionary but not key1");
- }
-*/
Dictionary1[key1] = value;
Dictionary2[key2] = value;
m_array = null;
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs b/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs
index e63629e680..eb4a50977f 100644
--- a/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Chat/Tests/ChatModuleTests.cs
@@ -241,8 +241,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat.Tests
sceneSouth.Update(4);
sp1.DrawDistance += 64;
sp2.DrawDistance += 64;
- sceneNorth.Update(2);
- sceneSouth.Update(2);
+ sceneNorth.Update(4);
+ sceneSouth.Update(4);
// Check child positions are correct.
Assert.AreEqual(
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
index af59cd2fe7..8bbb70e851 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
@@ -290,8 +290,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
else
connector = new UserAgentServiceConnector(userAgentDriver);
- GridRegion source = new GridRegion(Scene.RegionInfo);
- source.RawServerURI = m_GatekeeperURI;
+ GridRegion source = new GridRegion(Scene.RegionInfo)
+ {
+ RawServerURI = m_GatekeeperURI
+ };
bool success = connector.LoginAgentToGrid(source, agentCircuit, reg, finalDestination, false, out reason);
logout = success; // flag for later logout from this grid; this is an HG TP
@@ -578,8 +580,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
string homeURI = Scene.GetAgentHomeURI(remoteClient.AgentId);
- string message;
- GridRegion finalDestination = gConn.GetHyperlinkRegion(gatekeeper, new UUID(lm.RegionID), remoteClient.AgentId, homeURI, out message);
+ GridRegion finalDestination = gConn.GetHyperlinkRegion(gatekeeper, new UUID(lm.RegionID), remoteClient.AgentId, homeURI, out string message);
if (finalDestination != null)
{
@@ -793,19 +794,18 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
private GridRegion MakeGateKeeperRegion(string wantedURI)
{
- Uri uri;
- if(!Uri.TryCreate(wantedURI, UriKind.Absolute, out uri))
+ if(!Uri.TryCreate(wantedURI, UriKind.Absolute, out Uri uri))
return null;
- GridRegion region = new GridRegion();
-
- region.ExternalHostName = uri.Host;
- region.HttpPort = (uint)uri.Port;
- region.ServerURI = wantedURI; //uri.AbsoluteUri for some reason default ports are needed
- region.RegionName = string.Empty;
- region.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), (int)0);
- region.RegionFlags = OpenSim.Framework.RegionFlags.Hyperlink;
- return region;
+ return new GridRegion()
+ {
+ ExternalHostName = uri.Host,
+ HttpPort = (uint)uri.Port,
+ ServerURI = wantedURI, //uri.AbsoluteUri for some reason default ports are needed
+ RegionName = string.Empty,
+ InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), (int)0),
+ RegionFlags = OpenSim.Framework.RegionFlags.Hyperlink
+ };
}
}
}
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGAssetMapper.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGAssetMapper.cs
index 9d35d999fd..b4f93e5518 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGAssetMapper.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGAssetMapper.cs
@@ -323,7 +323,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
// debugging we may want to simply report the failure if we can tell this is due to a failure
// with a particular asset and not a destination network failure where all asset posts will fail (and
// generate large amounts of log spam).
- throw e;
+ throw;
}
}
StringBuilder sb = null;
diff --git a/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs b/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
index f844248e12..ae8cafb01a 100644
--- a/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
+++ b/OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
@@ -95,9 +95,9 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private object m_httpListLock = new object();
+ private readonly object m_httpListLock = new object();
private int m_httpTimeout = 30000;
- private string m_name = "HttpScriptRequests";
+ private readonly string m_name = "HttpScriptRequests";
private OutboundUrlFilter m_outboundUrlFilter;
private string m_proxyurl = "";
@@ -135,11 +135,10 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
public bool CheckThrottle(uint localID, UUID ownerID)
{
- ThrottleData th;
double now = Util.GetTimeStamp();
bool ret;
- if (m_RequestsThrottle.TryGetValue(localID, out th))
+ if (m_RequestsThrottle.TryGetValue(localID, out ThrottleData th))
{
double delta = now - th.lastTime;
th.lastTime = now;
@@ -353,8 +352,7 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
public IServiceRequest GetNextCompletedRequest()
{
- HttpRequestClass req;
- if(m_CompletedRequests.TryDequeue(out req))
+ if(m_CompletedRequests.TryDequeue(out HttpRequestClass req))
return req;
return null;
@@ -364,8 +362,7 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
{
lock (m_httpListLock)
{
- HttpRequestClass tmpReq;
- if (m_pendingRequests.TryGetValue(reqId, out tmpReq))
+ if (m_pendingRequests.TryGetValue(reqId, out HttpRequestClass tmpReq))
{
tmpReq.Stop();
m_pendingRequests.Remove(reqId);
@@ -410,13 +407,15 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
// First instance sets this up for all sims
if (ThreadPool == null)
{
- STPStartInfo startInfo = new STPStartInfo();
- startInfo.IdleTimeout = 2000;
- startInfo.MaxWorkerThreads = maxThreads;
- startInfo.MinWorkerThreads = 0;
- startInfo.ThreadPriority = ThreadPriority.BelowNormal;
- startInfo.StartSuspended = true;
- startInfo.ThreadPoolName = "ScriptsHttpReq";
+ STPStartInfo startInfo = new STPStartInfo()
+ {
+ IdleTimeout = 2000,
+ MaxWorkerThreads = maxThreads,
+ MinWorkerThreads = 0,
+ ThreadPriority = ThreadPriority.Normal,
+ StartSuspended = true,
+ ThreadPoolName = "ScriptsHttpReq"
+ };
ThreadPool = new SmartThreadPool(startInfo);
ThreadPool.Start();
@@ -540,7 +539,7 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
// We may want to ignore SSL
if (sender is HttpWebRequest)
{
- HttpWebRequest Request = (HttpWebRequest)sender;
+ HttpWebRequest Request = sender as HttpWebRequest;
ServicePoint sp = Request.ServicePoint;
// We don't case about encryption, get out of here
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
index 57aba05b7d..9124e97842 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
@@ -194,10 +194,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
return false;
}
- if (m_scenes.ContainsKey(destination.RegionID))
+ if (m_scenes.TryGetValue(destination.RegionID, out Scene destScene))
{
// m_log.DebugFormat("[LOCAL SIMULATION CONNECTOR]: Found region {0} to send SendCreateChildAgent", destination.RegionName);
- return m_scenes[destination.RegionID].NewUserConnection(aCircuit, teleportFlags, source, out reason);
+ return destScene.NewUserConnection(aCircuit, teleportFlags, source, out reason);
}
reason = "Did not find region " + destination.RegionName;
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateTerrainXferHandler.cs b/OpenSim/Region/CoreModules/World/Estate/EstateTerrainXferHandler.cs
index 2d74eaf929..788cdc49ca 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateTerrainXferHandler.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateTerrainXferHandler.cs
@@ -39,7 +39,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
private AssetBase m_asset;
public delegate void TerrainUploadComplete(string name, byte[] filedata, IClientAPI remoteClient);
-
public event TerrainUploadComplete TerrainUploadDone;
//private string m_description = String.Empty;
@@ -48,15 +47,16 @@ namespace OpenSim.Region.CoreModules.World.Estate
private sbyte type = 0;
public ulong mXferID;
- private TerrainUploadComplete handlerTerrainUploadDone;
public EstateTerrainXferHandler(IClientAPI pRemoteClient, string pClientFilename)
{
- m_asset = new AssetBase(UUID.Zero, pClientFilename, type, pRemoteClient.AgentId.ToString());
- m_asset.Data = new byte[0];
- m_asset.Description = "empty";
- m_asset.Local = true;
- m_asset.Temporary = true;
+ m_asset = new AssetBase(UUID.Zero, pClientFilename, type, pRemoteClient.AgentId.ToString())
+ {
+ Data = new byte[0],
+ Description = "empty",
+ Local = true,
+ Temporary = true
+ };
}
public ulong XferID
@@ -108,11 +108,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
public void SendCompleteMessage(IClientAPI remoteClient)
{
- handlerTerrainUploadDone = TerrainUploadDone;
- if (handlerTerrainUploadDone != null)
- {
- handlerTerrainUploadDone(m_asset.Name, m_asset.Data, remoteClient);
- }
+ TerrainUploadDone?.Invoke(m_asset.Name, m_asset.Data, remoteClient);
}
}
}
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 2144c8f17b..6ab0c24d87 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -1756,7 +1756,7 @@ namespace OpenSim.Region.CoreModules.World.Land
foreach (SceneObjectGroup obj in primsOverMe)
{
if(m_scene.Permissions.CanSellObject(previousOwner,obj, (byte)SaleType.Original))
- m_BuySellModule.BuyObject(sp.ControllingClient, UUID.Zero, obj.LocalId, 1, 0);
+ m_BuySellModule.BuyObject(sp.ControllingClient, UUID.Zero, obj.LocalId, (byte)SaleType.Original, 0);
}
}
}
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 920005aad1..dcd6b29f55 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -577,7 +577,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
/// Triggered by
- /// in
+ /// in
/// via ,
/// via
///
@@ -591,7 +591,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
/// Triggered by
- /// in
+ /// in
/// via ,
/// via
///
@@ -605,7 +605,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
/// Triggered by
- /// in
+ /// in
/// via ,
/// via
///
@@ -619,7 +619,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
/// Triggered by
- /// in
+ /// in
/// via ,
/// via
///
@@ -3344,11 +3344,7 @@ namespace OpenSim.Region.Framework.Scenes
public void TriggerThrottleUpdate(ScenePresence scenePresence)
{
- ThrottleUpdate handler = OnThrottleUpdate;
- if (handler != null)
- {
- handler(scenePresence);
- }
+ OnThrottleUpdate?.Invoke(scenePresence);
}
// public void TriggerGatherUuids(SceneObjectPart sop, IDictionary assetUuids)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index 60fb095e24..ee4cb520e9 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -220,9 +220,7 @@ namespace OpenSim.Region.Framework.Scenes
public void SetBypassPermissions(bool value)
{
- SetBypassPermissionsHandler handler = OnSetBypassPermissions;
- if (handler != null)
- handler(value);
+ OnSetBypassPermissions?.Invoke(value);
}
public bool BypassPermissions()
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 9a119a846f..b5d72f9e45 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -115,12 +115,9 @@ namespace OpenSim.Region.Framework.Scenes
{
m_physicsEnabled = value;
- if (PhysicsScene != null)
+ if (PhysicsScene != null && PhysicsScene is IPhysicsParameters)
{
- IPhysicsParameters physScene = PhysicsScene as IPhysicsParameters;
-
- if (physScene != null)
- physScene.SetPhysicsParameter(
+ ((IPhysicsParameters)PhysicsScene).SetPhysicsParameter(
"Active", m_physicsEnabled.ToString(), PhysParameterEntry.APPLY_TO_NONE);
}
}
@@ -158,7 +155,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (ent is SceneObjectGroup)
{
- SceneObjectGroup sog = (SceneObjectGroup)ent;
+ SceneObjectGroup sog = ent as SceneObjectGroup;
sog.CreateScriptInstances(0, false, DefaultScriptEngine, 0);
sog.ResumeScripts();
}
@@ -848,8 +845,10 @@ namespace OpenSim.Region.Framework.Scenes
m_lastIncoming = 0;
m_lastOutgoing = 0;
- m_asyncSceneObjectDeleter = new AsyncSceneObjectGroupDeleter(this);
- m_asyncSceneObjectDeleter.Enabled = true;
+ m_asyncSceneObjectDeleter = new AsyncSceneObjectGroupDeleter(this)
+ {
+ Enabled = true
+ };
m_asyncInventorySender = new AsyncInventorySender(this);
@@ -1048,13 +1047,10 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- string tile
- = Util.GetConfigVarFromSections(
+ string tile = Util.GetConfigVarFromSections(
config, "MaptileStaticUUID", possibleMapConfigSections, UUID.Zero.ToString());
- UUID tileID;
-
- if (tile != UUID.Zero.ToString() && UUID.TryParse(tile, out tileID))
+ if (tile != UUID.Zero.ToString() && UUID.TryParse(tile, out UUID tileID))
{
RegionInfo.RegionSettings.TerrainImageID = tileID;
}
@@ -1300,8 +1296,7 @@ namespace OpenSim.Region.Framework.Scenes
{
ForEachRootScenePresence(delegate(ScenePresence agent)
{
- List old = new List();
- old.Add(otherRegion.RegionHandle);
+ List old = new List() {otherRegion.RegionHandle};
agent.DropOldNeighbours(old);
if (EntityTransferModule != null && agent.PresenceType != PresenceType.Npc)
EntityTransferModule.EnableChildAgent(agent, otherRegion);
@@ -1670,9 +1665,7 @@ namespace OpenSim.Region.Framework.Scenes
WorkManager.RunInThreadPool(
delegate
{
- List coarseLocations;
- List avatarUUIDs;
- SceneGraph.GetCoarseLocations(out coarseLocations, out avatarUUIDs, 60);
+ SceneGraph.GetCoarseLocations(out List coarseLocations, out List avatarUUIDs, 60);
// Send coarse locations to clients
ForEachScenePresence(delegate(ScenePresence presence)
{
@@ -1941,7 +1934,7 @@ namespace OpenSim.Region.Framework.Scenes
if (grp == null)
m_groupsWithTargets.Remove(entry);
else
- grp.checkAtTargets();
+ grp.CheckAtTargets();
}
}
}
@@ -2030,21 +2023,23 @@ namespace OpenSim.Region.Framework.Scenes
foreach (KeyValuePair ret in m_returns)
{
- GridInstantMessage msg = new GridInstantMessage();
- msg.fromAgentID = Guid.Empty; // From server
- msg.toAgentID = ret.Key.Guid;
- msg.imSessionID = Guid.NewGuid();
- msg.timestamp = unixtime;
- msg.fromAgentName = "Server";
- msg.dialog = 19; // Object msg
- msg.fromGroup = false;
- msg.offline = 1;
- msg.ParentEstateID = estateid;
- msg.Position = Vector3.Zero;
- msg.RegionID = regionguid;
+ GridInstantMessage msg = new GridInstantMessage()
+ {
+ fromAgentID = Guid.Empty, // From server
+ toAgentID = ret.Key.Guid,
+ imSessionID = Guid.NewGuid(),
+ timestamp = unixtime,
+ fromAgentName = "Server",
+ dialog = 19, // Object msg
+ fromGroup = false,
+ offline = 1,
+ ParentEstateID = estateid,
+ Position = Vector3.Zero,
+ RegionID = regionguid,
+ // We must fill in a null-terminated 'empty' string here since bytes[0] will crash viewer 3.
+ binaryBucket = new Byte[1] {0}
+ };
- // We must fill in a null-terminated 'empty' string here since bytes[0] will crash viewer 3.
- msg.binaryBucket = new Byte[1] {0};
if (ret.Value.count > 1)
msg.message = string.Format("Your {0} objects were returned from {1} in region {2} due to {3}", ret.Value.count, ret.Value.location.ToString(), RegionInfo.RegionName, ret.Value.reason);
else
@@ -2096,11 +2091,13 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- ReturnInfo info = new ReturnInfo();
- info.count = 1;
- info.objectName = objectName;
- info.location = location;
- info.reason = reason;
+ ReturnInfo info = new ReturnInfo()
+ {
+ count = 1,
+ objectName = objectName,
+ location = location,
+ reason = reason
+ };
m_returns[agentID] = info;
}
}
@@ -2526,8 +2523,7 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- IClientAPI client = null;
- if (TryGetClient(ownerID, out client))
+ if (TryGetClient(ownerID, out IClientAPI client))
client.SendAlertMessage("You cannot create objects here.");
}
}
@@ -2720,16 +2716,16 @@ namespace OpenSim.Region.Framework.Scenes
{
if (e is SceneObjectGroup)
{
- SceneObjectGroup sog = (SceneObjectGroup)e;
+ SceneObjectGroup sog = e as SceneObjectGroup;
if (sog != null && !sog.IsAttachment)
{
if (!exceptNoCopy || ((sog.EffectiveOwnerPerms & (uint)PermissionMask.Copy) != 0))
{
- DeleteSceneObject((SceneObjectGroup)e, false);
+ DeleteSceneObject(sog, false);
}
else
{
- toReturn.Add((SceneObjectGroup)e);
+ toReturn.Add(sog);
}
}
}
@@ -3247,8 +3243,7 @@ namespace OpenSim.Region.Framework.Scenes
if (aCircuit == null)
return false;
- bool vialogin = false;
- if (VerifyClient(aCircuit, ep, out vialogin))
+ if (VerifyClient(aCircuit, ep, out bool vialogin))
return true;
// if it doesn't pass, we remove the agentcircuitdata altogether
@@ -5416,7 +5411,7 @@ Label_GroupsDone:
{
if (obj is SceneObjectGroup)
{
- SceneObjectGroup grp = (SceneObjectGroup)obj;
+ SceneObjectGroup grp = obj as SceneObjectGroup;
if (!grp.IsDeleted)
{
@@ -5689,10 +5684,11 @@ Environment.Exit(1);
v0.Normalize();
v1.Normalize();
- Vector3 vsn = new Vector3();
- vsn.X = (v0.Y * v1.Z) - (v0.Z * v1.Y);
- vsn.Y = (v0.Z * v1.X) - (v0.X * v1.Z);
- vsn.Z = (v0.X * v1.Y) - (v0.Y * v1.X);
+ Vector3 vsn = new Vector3(
+ (v0.Y * v1.Z) - (v0.Z * v1.Y),
+ (v0.Z * v1.X) - (v0.X * v1.Z),
+ (v0.X * v1.Y) - (v0.Y * v1.X)
+ );
vsn.Normalize();
float xdiff = x - (float)((int)x);
@@ -5937,11 +5933,10 @@ Environment.Exit(1);
foreach (SceneObjectGroup g in objects)
{
- float ominX, ominY, ominZ, omaxX, omaxY, omaxZ;
-
Vector3 vec = g.AbsolutePosition;
- g.GetAxisAlignedBoundingBoxRaw(out ominX, out omaxX, out ominY, out omaxY, out ominZ, out omaxZ);
+ g.GetAxisAlignedBoundingBoxRaw(out float ominX, out float omaxX, out float ominY,
+ out float omaxY, out float ominZ, out float omaxZ);
// m_log.DebugFormat(
// "[SCENE]: For {0} found AxisAlignedBoundingBoxRaw {1}, {2}",
@@ -6127,10 +6122,12 @@ Environment.Exit(1);
// Fake AgentCircuitData to keep IAuthorizationModule smiling
if (aCircuit == null)
{
- aCircuit = new AgentCircuitData();
- aCircuit.AgentID = agentID;
- aCircuit.firstname = String.Empty;
- aCircuit.lastname = String.Empty;
+ aCircuit = new AgentCircuitData()
+ {
+ AgentID = agentID,
+ firstname = String.Empty,
+ lastname = String.Empty
+ };
}
try
@@ -6280,11 +6277,9 @@ Environment.Exit(1);
CheckHeartbeat();
IEtcdModule etcd = RequestModuleInterface();
- int flags;
- string message;
if (etcd != null)
{
- int health = GetHealth(out flags, out message);
+ int health = GetHealth(out int flags, out string message);
if (health != m_lastHealth)
{
m_lastHealth = health;
@@ -6350,15 +6345,10 @@ Environment.Exit(1);
public string GetExtraSetting(string name)
{
- if (m_extraSettings == null)
- return String.Empty;
+ if (m_extraSettings != null && m_extraSettings.TryGetValue(name, out string val))
+ return val;
- string val;
-
- if (!m_extraSettings.TryGetValue(name, out val))
- return String.Empty;
-
- return val;
+ return String.Empty;
}
public void StoreExtraSetting(string name, string val)
@@ -6366,9 +6356,7 @@ Environment.Exit(1);
if (m_extraSettings == null)
return;
- string oldVal;
-
- if (m_extraSettings.TryGetValue(name, out oldVal))
+ if (m_extraSettings.TryGetValue(name, out string oldVal))
{
if (oldVal == val)
return;
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 625b4dc063..f70f5e2213 100755
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -96,8 +96,8 @@ namespace OpenSim.Region.Framework.Scenes
/// These operations rely on the parts composition of the object. If allowed to run concurrently then race
/// conditions can occur.
///
- private Object m_updateLock = new Object();
- private Object m_linkLock = new Object();
+ private readonly Object m_updateLock = new Object();
+ private readonly Object m_linkLock = new Object();
private System.Threading.ReaderWriterLockSlim m_scenePresencesLock;
private System.Threading.ReaderWriterLockSlim m_scenePartsLock;
@@ -526,8 +526,7 @@ namespace OpenSim.Region.Framework.Scenes
// "[SCENE GRAPH]: Deleting scene object with uuid {0}, resultOfObjectLinked = {1}",
// uuid, resultOfObjectLinked);
- EntityBase entity;
- if (!Entities.TryGetValue(uuid, out entity) || (!(entity is SceneObjectGroup)))
+ if (!Entities.TryGetValue(uuid, out EntityBase entity) || (!(entity is SceneObjectGroup)))
return false;
SceneObjectGroup grp = (SceneObjectGroup)entity;
@@ -608,26 +607,17 @@ namespace OpenSim.Region.Framework.Scenes
public void FireAttachToBackup(SceneObjectGroup obj)
{
- if (OnAttachToBackup != null)
- {
- OnAttachToBackup(obj);
- }
+ OnAttachToBackup?.Invoke(obj);
}
public void FireDetachFromBackup(SceneObjectGroup obj)
{
- if (OnDetachFromBackup != null)
- {
- OnDetachFromBackup(obj);
- }
+ OnDetachFromBackup?.Invoke(obj);
}
public void FireChangeBackup(SceneObjectGroup obj)
{
- if (OnChangeBackup != null)
- {
- OnChangeBackup(obj);
- }
+ OnChangeBackup?.Invoke(obj);
}
///
@@ -728,8 +718,7 @@ namespace OpenSim.Region.Framework.Scenes
++m_numChildAgents;
uint localid = presence.LocalId;
- ScenePresence oldref;
- if (m_scenePresenceMap.TryGetValue(id, out oldref))
+ if (m_scenePresenceMap.TryGetValue(id, out ScenePresence oldref))
{
uint oldLocalID = oldref.LocalId;
if (localid != oldLocalID)
@@ -769,8 +758,7 @@ namespace OpenSim.Region.Framework.Scenes
entered = true;
}
// Remove the presence reference from the dictionary
- ScenePresence oldref;
- if(m_scenePresenceMap.TryGetValue(agentID, out oldref))
+ if(m_scenePresenceMap.TryGetValue(agentID, out ScenePresence oldref))
{
m_scenePresenceMap.Remove(agentID);
// Find the index in the list where the old ref was stored and remove the reference
@@ -903,8 +891,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scenePresencesLock.EnterReadLock();
entered = true;
}
- ScenePresence presence;
- if (m_scenePresenceMap.TryGetValue(agentId, out presence))
+ if (m_scenePresenceMap.TryGetValue(agentId, out ScenePresence presence))
return presence.ControllingClient;
return null;
}
@@ -970,8 +957,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scenePresencesLock.EnterReadLock();
entered = true;
}
- ScenePresence presence;
- m_scenePresenceMap.TryGetValue(agentID, out presence);
+ m_scenePresenceMap.TryGetValue(agentID, out ScenePresence presence);
return presence;
}
catch
@@ -1019,8 +1005,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scenePresencesLock.EnterReadLock();
entered = true;
}
- ScenePresence sp;
- if (m_scenePresenceLocalIDMap.TryGetValue(localID, out sp))
+ if (m_scenePresenceLocalIDMap.TryGetValue(localID, out ScenePresence sp))
return sp;
}
finally
@@ -1087,8 +1072,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scenePartsLock.EnterReadLock();
entered = true;
}
- SceneObjectPart sop;
- if(m_scenePartsByLocalID.TryGetValue(localID, out sop))
+ if(m_scenePartsByLocalID.TryGetValue(localID, out SceneObjectPart sop))
return sop.ParentGroup;
return null;
}
@@ -1115,8 +1099,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scenePartsLock.EnterReadLock();
entered = true;
}
- SceneObjectPart sop;
- if (m_scenePartsByID.TryGetValue(fullID, out sop))
+ if (m_scenePartsByID.TryGetValue(fullID, out SceneObjectPart sop))
return sop.ParentGroup;
return null;
}
@@ -1137,7 +1120,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (ent is SceneObjectGroup)
{
- SceneObjectGroup reportingG = (SceneObjectGroup)ent;
+ SceneObjectGroup reportingG = ent as SceneObjectGroup;
EntityIntersection inter = reportingG.TestIntersection(hray, frontFacesOnly, faceCenters);
if (inter.HitTF && inter.distance < closestDistance)
{
@@ -1163,7 +1146,7 @@ namespace OpenSim.Region.Framework.Scenes
for (int i = 0; i < entities.Length; ++i)
{
if(entities[i] is SceneObjectGroup)
- ret.Add((SceneObjectGroup)entities[i]);
+ ret.Add(entities[i] as SceneObjectGroup);
}
return ret;
}
@@ -1175,9 +1158,8 @@ namespace OpenSim.Region.Framework.Scenes
/// null if no such group was found
protected internal SceneObjectGroup GetSceneObjectGroup(UUID fullID)
{
- EntityBase entity;
- if (Entities.TryGetValue(fullID, out entity) && (entity is SceneObjectGroup))
- return (SceneObjectGroup)entity;
+ if (Entities.TryGetValue(fullID, out EntityBase entity) && (entity is SceneObjectGroup))
+ return entity as SceneObjectGroup;
return null;
}
@@ -1187,9 +1169,8 @@ namespace OpenSim.Region.Framework.Scenes
/// null if no such group was found
protected internal SceneObjectGroup GetSceneObjectGroup(uint localID)
{
- EntityBase entity;
- if (Entities.TryGetValue(localID, out entity) && (entity is SceneObjectGroup))
- return (SceneObjectGroup)entity;
+ if (Entities.TryGetValue(localID, out EntityBase entity) && (entity is SceneObjectGroup))
+ return entity as SceneObjectGroup;
return null;
}
@@ -1228,8 +1209,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scenePartsLock.EnterReadLock();
entered = true;
}
- SceneObjectPart sop;
- if (m_scenePartsByLocalID.TryGetValue(localID, out sop))
+ if (m_scenePartsByLocalID.TryGetValue(localID, out SceneObjectPart sop))
{
if (sop.ParentGroup == null || sop.ParentGroup.IsDeleted)
return null;
@@ -1259,8 +1239,7 @@ namespace OpenSim.Region.Framework.Scenes
m_scenePartsLock.EnterReadLock();
entered = true;
}
- SceneObjectPart sop;
- if (m_scenePartsByID.TryGetValue(fullID, out sop))
+ if (m_scenePartsByID.TryGetValue(fullID, out SceneObjectPart sop))
{
if (sop.ParentGroup == null || sop.ParentGroup.IsDeleted)
return null;
@@ -1336,11 +1315,7 @@ namespace OpenSim.Region.Framework.Scenes
protected internal void physicsBasedCrash()
{
- handlerPhysicsCrash = UnRecoverableError;
- if (handlerPhysicsCrash != null)
- {
- handlerPhysicsCrash();
- }
+ UnRecoverableError?.Invoke();
}
///
@@ -1846,27 +1821,28 @@ namespace OpenSim.Region.Framework.Scenes
{
if (m_parentScene.Permissions.CanEditObject(group.UUID, agentID))
{
- ObjectShapePacket.ObjectDataBlock shapeData = new ObjectShapePacket.ObjectDataBlock();
- shapeData.ObjectLocalID = shapeBlock.ObjectLocalID;
- shapeData.PathBegin = shapeBlock.PathBegin;
- shapeData.PathCurve = shapeBlock.PathCurve;
- shapeData.PathEnd = shapeBlock.PathEnd;
- shapeData.PathRadiusOffset = shapeBlock.PathRadiusOffset;
- shapeData.PathRevolutions = shapeBlock.PathRevolutions;
- shapeData.PathScaleX = shapeBlock.PathScaleX;
- shapeData.PathScaleY = shapeBlock.PathScaleY;
- shapeData.PathShearX = shapeBlock.PathShearX;
- shapeData.PathShearY = shapeBlock.PathShearY;
- shapeData.PathSkew = shapeBlock.PathSkew;
- shapeData.PathTaperX = shapeBlock.PathTaperX;
- shapeData.PathTaperY = shapeBlock.PathTaperY;
- shapeData.PathTwist = shapeBlock.PathTwist;
- shapeData.PathTwistBegin = shapeBlock.PathTwistBegin;
- shapeData.ProfileBegin = shapeBlock.ProfileBegin;
- shapeData.ProfileCurve = shapeBlock.ProfileCurve;
- shapeData.ProfileEnd = shapeBlock.ProfileEnd;
- shapeData.ProfileHollow = shapeBlock.ProfileHollow;
-
+ ObjectShapePacket.ObjectDataBlock shapeData = new ObjectShapePacket.ObjectDataBlock()
+ {
+ ObjectLocalID = shapeBlock.ObjectLocalID,
+ PathBegin = shapeBlock.PathBegin,
+ PathCurve = shapeBlock.PathCurve,
+ PathEnd = shapeBlock.PathEnd,
+ PathRadiusOffset = shapeBlock.PathRadiusOffset,
+ PathRevolutions = shapeBlock.PathRevolutions,
+ PathScaleX = shapeBlock.PathScaleX,
+ PathScaleY = shapeBlock.PathScaleY,
+ PathShearX = shapeBlock.PathShearX,
+ PathShearY = shapeBlock.PathShearY,
+ PathSkew = shapeBlock.PathSkew,
+ PathTaperX = shapeBlock.PathTaperX,
+ PathTaperY = shapeBlock.PathTaperY,
+ PathTwist = shapeBlock.PathTwist,
+ PathTwistBegin = shapeBlock.PathTwistBegin,
+ ProfileBegin = shapeBlock.ProfileBegin,
+ ProfileCurve = shapeBlock.ProfileCurve,
+ ProfileEnd = shapeBlock.ProfileEnd,
+ ProfileHollow = shapeBlock.ProfileHollow
+ };
group.UpdateShape(shapeData, primLocalID);
}
}
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 271d3ae36e..5d0401fa6f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -663,8 +663,7 @@ namespace OpenSim.Region.Framework.Scenes
// We remove the object here
try
{
- List localIDs = new List();
- localIDs.Add(root.LocalId);
+ List localIDs = new List(){root.LocalId};
sogScene.AddReturn(sog.OwnerID, sog.Name, sog.AbsolutePosition,
"Returned at region cross");
sogScene.DeRezObjects(null, localIDs, UUID.Zero, DeRezAction.Return, UUID.Zero, false);
@@ -1092,14 +1091,15 @@ namespace OpenSim.Region.Framework.Scenes
return -1;
}
- TeleportObjectData tdata = new TeleportObjectData();
- tdata.flags = flags;
- tdata.vel = vel;
- tdata.avel = avel;
- tdata.acc = acc;
- tdata.ori = ori;
- tdata.sourceID = sourceID;
-
+ TeleportObjectData tdata = new TeleportObjectData()
+ {
+ flags = flags,
+ vel = vel,
+ avel = avel,
+ acc = acc,
+ ori = ori,
+ sourceID = sourceID
+ };
SOGCrossDelegate d = CrossAsync;
d.BeginInvoke(this, targetPosition, tdata, CrossAsyncCompleted, d);
@@ -1365,7 +1365,6 @@ namespace OpenSim.Region.Framework.Scenes
{
Dispose(false);
}
-
private bool disposed = false;
public void Dispose()
{
@@ -1379,6 +1378,7 @@ namespace OpenSim.Region.Framework.Scenes
if (!disposed)
{
IsDeleted = true;
+ disposed = true;
SceneObjectPart[] parts = m_parts.GetArray();
for(int i= 0; i < parts.Length; ++i)
@@ -1386,19 +1386,15 @@ namespace OpenSim.Region.Framework.Scenes
m_parts.Clear();
m_sittingAvatars.Clear();
- // m_rootPart = null;
+ // m_rootPart = null;
m_targets.Clear();
m_rotTargets.Clear();
m_targetsByScript.Clear();
m_partsNameToLinkMap.Clear();
-
- disposed = true;
}
}
-
-
public void LoadScriptState(XmlDocument doc)
{
XmlNodeList nodes = doc.GetElementsByTagName("SavedScriptState");
@@ -1709,14 +1705,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public Vector3 GetAxisAlignedBoundingBox(out float offsetHeight)
{
- float minX;
- float maxX;
- float minY;
- float maxY;
- float minZ;
- float maxZ;
-
- GetAxisAlignedBoundingBoxRaw(out minX, out maxX, out minY, out maxY, out minZ, out maxZ);
+ GetAxisAlignedBoundingBoxRaw(out float minX, out float maxX, out float minY, out float maxY, out float minZ, out float maxZ);
Vector3 boundingBox = new Vector3(maxX - minX, maxY - minY, maxZ - minZ);
offsetHeight = 0;
@@ -3089,9 +3078,9 @@ namespace OpenSim.Region.Framework.Scenes
/// null if a part with the primID was not found
public SceneObjectPart GetPart(UUID primID)
{
- SceneObjectPart childPart;
- m_parts.TryGetValue(primID, out childPart);
- return childPart;
+ if(m_parts.TryGetValue(primID, out SceneObjectPart childPart))
+ return childPart;
+ return null;
}
///
@@ -3102,7 +3091,7 @@ namespace OpenSim.Region.Framework.Scenes
public SceneObjectPart GetPart(uint localID)
{
SceneObjectPart sop = m_scene.GetSceneObjectPart(localID);
- if(sop.ParentGroup.Equals(this))
+ if(sop.ParentGroup.LocalId == LocalId)
return sop;
return null;
}
@@ -3794,9 +3783,7 @@ namespace OpenSim.Region.Framework.Scenes
// compute difference between previous old rotation and new incoming rotation
Quaternion minimalRotationFromQ1ToQ2 = newOrientation * Quaternion.Inverse(old);
- float rotationAngle;
- Vector3 spinforce;
- minimalRotationFromQ1ToQ2.GetAxisAngle(out spinforce, out rotationAngle);
+ minimalRotationFromQ1ToQ2.GetAxisAngle(out Vector3 spinforce, out float rotationAngle);
if(Math.Abs(rotationAngle)< 0.001)
return;
@@ -4044,8 +4031,7 @@ namespace OpenSim.Region.Framework.Scenes
HasGroupChanged = true;
// Send the group's properties to all clients once all parts are updated
- IClientAPI client;
- if (Scene.TryGetClient(AgentID, out client))
+ if (Scene.TryGetClient(AgentID, out IClientAPI client))
SendPropertiesToClient(client);
}
@@ -4833,12 +4819,14 @@ namespace OpenSim.Region.Framework.Scenes
public int registerRotTargetWaypoint(UUID scriptID, Quaternion target, float tolerance)
{
- scriptRotTarget waypoint = new scriptRotTarget();
- waypoint.targetRot = target;
- waypoint.tolerance = tolerance;
- waypoint.scriptID = scriptID;
int handle = m_scene.AllocateIntId();
- waypoint.handle = handle;
+ scriptRotTarget waypoint = new scriptRotTarget()
+ {
+ targetRot = target,
+ tolerance = tolerance,
+ scriptID = scriptID,
+ handle = handle
+ };
lock (m_targets)
{
@@ -4883,12 +4871,14 @@ namespace OpenSim.Region.Framework.Scenes
public int registerTargetWaypoint(UUID scriptID, Vector3 target, float tolerance)
{
- scriptPosTarget waypoint = new scriptPosTarget();
- waypoint.targetPos = target;
- waypoint.tolerance = tolerance * tolerance;
- waypoint.scriptID = scriptID;
int handle = m_scene.AllocateIntId();
- waypoint.handle = handle;
+ scriptPosTarget waypoint = new scriptPosTarget()
+ {
+ targetPos = target,
+ tolerance = tolerance * tolerance,
+ scriptID = scriptID,
+ handle = handle
+ };
lock (m_targets)
{
@@ -4952,7 +4942,7 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- public void checkAtTargets()
+ public void CheckAtTargets()
{
int targetsCount = m_targets.Count;
if (targetsCount > 0 && (m_scriptListens_atTarget || m_scriptListens_notAtTarget))
@@ -5139,20 +5129,22 @@ namespace OpenSim.Region.Framework.Scenes
public void SetInertiaData(float TotalMass, Vector3 CenterOfMass, Vector3 Inertia, Vector4 aux )
{
- PhysicsInertiaData inertia = new PhysicsInertiaData();
- inertia.TotalMass = TotalMass;
- inertia.CenterOfMass = CenterOfMass;
- inertia.Inertia = Inertia;
- inertia.InertiaRotation = aux;
+ PhysicsInertiaData inertiaData = new PhysicsInertiaData()
+ {
+ TotalMass = TotalMass,
+ CenterOfMass = CenterOfMass,
+ Inertia = Inertia,
+ InertiaRotation = aux
+ };
if(TotalMass < 0)
RootPart.PhysicsInertia = null;
else
- RootPart.PhysicsInertia = new PhysicsInertiaData(inertia);
+ RootPart.PhysicsInertia = inertiaData;
PhysicsActor pa = RootPart.PhysActor;
if(pa !=null)
- pa.SetInertiaData(inertia);
+ pa.SetInertiaData(inertiaData);
}
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 6dd396c0a0..0507131d2f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -315,7 +315,7 @@ namespace OpenSim.Region.Framework.Scenes
private string m_text = String.Empty;
private string m_touchName = String.Empty;
private UndoRedoState m_UndoRedo = null;
- private object m_UndoLock = new object();
+ private readonly object m_UndoLock = new object();
private bool m_passTouches = false;
private bool m_passCollisions = false;
@@ -1178,7 +1178,7 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- private object UpdateFlagLock = new object();
+ private readonly object UpdateFlagLock = new object();
///
/// Used for media on a prim.
@@ -2494,7 +2494,7 @@ namespace OpenSim.Region.Framework.Scenes
public uint AggregatedInnerOwnerPerms {get; private set; }
public uint AggregatedInnerGroupPerms {get; private set; }
public uint AggregatedInnerEveryonePerms {get; private set; }
- private object InnerPermsLock = new object();
+ private readonly object InnerPermsLock = new object();
public void AggregateInnerPerms()
{
@@ -2676,59 +2676,55 @@ namespace OpenSim.Region.Framework.Scenes
private DetectedObject CreateDetObject(SceneObjectPart obj)
{
- DetectedObject detobj = new DetectedObject();
- detobj.keyUUID = obj.UUID;
- detobj.nameStr = obj.Name;
- detobj.ownerUUID = obj.OwnerID;
- detobj.posVector = obj.AbsolutePosition;
- detobj.rotQuat = obj.GetWorldRotation();
- detobj.velVector = obj.Velocity;
- detobj.colliderType = 0;
- detobj.groupUUID = obj.GroupID;
- // allow detector link number to be seen, unlike spec
- //if (VolumeDetectActive)
- // detobj.linkNumber = 0;
- //else
- detobj.linkNumber = LinkNum;
- return detobj;
+ return new DetectedObject()
+ {
+ keyUUID = obj.UUID,
+ nameStr = obj.Name,
+ ownerUUID = obj.OwnerID,
+ posVector = obj.AbsolutePosition,
+ rotQuat = obj.GetWorldRotation(),
+ velVector = obj.Velocity,
+ colliderType = 0,
+ groupUUID = obj.GroupID,
+ linkNumber = LinkNum
+ };
}
private DetectedObject CreateDetObject(ScenePresence av)
{
- DetectedObject detobj = new DetectedObject();
- detobj.keyUUID = av.UUID;
- detobj.nameStr = av.ControllingClient.Name;
- detobj.ownerUUID = av.UUID;
- detobj.posVector = av.AbsolutePosition;
- detobj.rotQuat = av.Rotation;
- detobj.velVector = av.Velocity;
- detobj.colliderType = av.IsNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
+ DetectedObject detobj = new DetectedObject()
+ {
+ keyUUID = av.UUID,
+ nameStr = av.ControllingClient.Name,
+ ownerUUID = av.UUID,
+ posVector = av.AbsolutePosition,
+ rotQuat = av.Rotation,
+ velVector = av.Velocity,
+ colliderType = av.IsNPC ? 0x20 : 0x1, // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
+ groupUUID = av.ControllingClient.ActiveGroupId,
+ linkNumber = LinkNum
+ };
if(av.IsSatOnObject)
detobj.colliderType |= 0x4; //passive
else if(detobj.velVector != Vector3.Zero)
detobj.colliderType |= 0x2; //active
- detobj.groupUUID = av.ControllingClient.ActiveGroupId;
- //if (VolumeDetectActive)
- // detobj.linkNumber = 0;
- //else
- detobj.linkNumber = LinkNum;
-
return detobj;
}
private DetectedObject CreateDetObjectForGround()
{
- DetectedObject detobj = new DetectedObject();
- detobj.keyUUID = UUID.Zero;
- detobj.nameStr = "";
- detobj.ownerUUID = UUID.Zero;
- detobj.posVector = ParentGroup.RootPart.AbsolutePosition;
- detobj.rotQuat = Quaternion.Identity;
- detobj.velVector = Vector3.Zero;
- detobj.colliderType = 0;
- detobj.groupUUID = UUID.Zero;
- detobj.linkNumber = LinkNum;
- return detobj;
+ return new DetectedObject()
+ {
+ keyUUID = UUID.Zero,
+ nameStr = "",
+ ownerUUID = UUID.Zero,
+ posVector = ParentGroup.RootPart.AbsolutePosition,
+ rotQuat = Quaternion.Identity,
+ velVector = Vector3.Zero,
+ colliderType = 0,
+ groupUUID = UUID.Zero,
+ linkNumber = LinkNum
+ };
}
private ColliderArgs CreateColliderArgs(SceneObjectPart dest, List colliders)
@@ -2801,9 +2797,8 @@ namespace OpenSim.Region.Framework.Scenes
bool sendToRoot = true;
ColliderArgs LandCollidingMessage = new ColliderArgs();
- List colliding = new List();
+ List colliding = new List(){CreateDetObjectForGround()};
- colliding.Add(CreateDetObjectForGround());
LandCollidingMessage.Colliders = colliding;
if (Inventory.ContainsScripts())
@@ -2873,10 +2868,12 @@ namespace OpenSim.Region.Framework.Scenes
curcontact = collissionswith[id];
if (Math.Abs(curcontact.RelativeSpeed) > 0.2)
{
- soundinfo = new CollisionForSoundInfo();
- soundinfo.colliderID = id;
- soundinfo.position = curcontact.Position;
- soundinfo.relativeVel = curcontact.RelativeSpeed;
+ soundinfo = new CollisionForSoundInfo()
+ {
+ colliderID = id,
+ position = curcontact.Position,
+ relativeVel = curcontact.RelativeSpeed
+ };
soundinfolist.Add(soundinfo);
}
}
@@ -2891,10 +2888,12 @@ namespace OpenSim.Region.Framework.Scenes
curcontact = collissionswith[id];
if (Math.Abs(curcontact.RelativeSpeed) > 0.2)
{
- soundinfo = new CollisionForSoundInfo();
- soundinfo.colliderID = id;
- soundinfo.position = curcontact.Position;
- soundinfo.relativeVel = curcontact.RelativeSpeed;
+ soundinfo = new CollisionForSoundInfo()
+ {
+ colliderID = id,
+ position = curcontact.Position,
+ relativeVel = curcontact.RelativeSpeed
+ };
soundinfolist.Add(soundinfo);
}
}
@@ -4353,9 +4352,11 @@ namespace OpenSim.Region.Framework.Scenes
//distance[i] = (normals[i].X * AmBa.X + normals[i].Y * AmBa.Y + normals[i].Z * AmBa.Z) * -1;
}
- EntityIntersection result = new EntityIntersection();
+ EntityIntersection result = new EntityIntersection()
+ {
+ distance = 1024
+ };
- result.distance = 1024;
float c = 0;
float a = 0;
float d = 0;
@@ -5485,9 +5486,7 @@ namespace OpenSim.Region.Framework.Scenes
Quaternion dR = currRot / APIDTarget;
// find axis and angle of rotation to rotate to desired orientation
- Vector3 axis = Vector3.UnitX;
- float angle;
- dR.GetAxisAngle(out axis, out angle);
+ dR.GetAxisAngle(out Vector3 axis, out float angle);
axis = axis * currRot;
// clamp strength to avoid overshoot
@@ -5669,7 +5668,7 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- private object animsLock = new object();
+ private readonly object animsLock = new object();
public Dictionary Animations = null;
public Dictionary AnimationsNames = null;
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 1473ec453c..36ac5962a5 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -164,7 +164,7 @@ namespace OpenSim.Region.Framework.Scenes
/// TODO: The child -> agent transition should be folded into LifecycleState and the CompleteMovement
/// regulation done there.
///
- private object m_completeMovementLock = new object();
+ private readonly object m_completeMovementLock = new object();
// private static readonly byte[] DEFAULT_TEXTURE = AvatarAppearance.GetDefaultTexture().GetBytes();
private static readonly Array DIR_CONTROL_FLAGS = Enum.GetValues(typeof(Dir_ControlFlags));
@@ -197,7 +197,7 @@ namespace OpenSim.Region.Framework.Scenes
private UUID m_currentParcelUUID = UUID.Zero;
private bool m_previusParcelHide = false;
private bool m_currentParcelHide = false;
- private object parcelLock = new Object();
+ private readonly object parcelLock = new Object();
public double ParcelDwellTickMS;
public UUID currentParcelUUID
@@ -374,7 +374,7 @@ namespace OpenSim.Region.Framework.Scenes
private float m_lastRegionsDrawDistance;
private Vector3 m_lastChildAgentUpdatePosition;
private Vector3 m_lastChildAgentCheckPosition;
- // private Vector3 m_lastChildAgentUpdateCamPosition;
+ // private Vector3 m_lastChildAgentUpdateCamPosition;
private Vector3 m_lastCameraRayCastCam;
private Vector3 m_lastCameraRayCastPos;
@@ -433,7 +433,7 @@ namespace OpenSim.Region.Framework.Scenes
private bool CameraConstraintActive;
- private object m_collisionEventLock = new Object();
+ private readonly object m_collisionEventLock = new Object();
private int m_movementAnimationUpdateCounter = 0;
@@ -510,7 +510,7 @@ namespace OpenSim.Region.Framework.Scenes
/// the very latest value and not using some cached version. Cannot make m_originRegionID itself volatite as
/// it is a value type.
///
- private object m_originRegionIDAccessLock = new object();
+ private readonly object m_originRegionIDAccessLock = new object();
private AutoResetEvent m_updateAgentReceivedAfterTransferEvent = new AutoResetEvent(false);
@@ -535,7 +535,7 @@ namespace OpenSim.Region.Framework.Scenes
SL = 2
}
- private LandingPointBehavior m_LandingPointBehavior = LandingPointBehavior.OS;
+ private readonly LandingPointBehavior m_LandingPointBehavior = LandingPointBehavior.OS;
#region Properties
@@ -1017,8 +1017,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.Info("================ KnownRegions "+Scene.RegionInfo.RegionName+" ================");
foreach (KeyValuePair kvp in KnownRegions)
{
- uint x, y;
- Util.RegionHandleToRegionLoc(kvp.Key, out x, out y);
+ Util.RegionHandleToRegionLoc(kvp.Key, out uint x, out uint y);
m_log.Info(" >> "+x+", "+y+": "+kvp.Value);
}
}
@@ -1831,8 +1830,7 @@ namespace OpenSim.Region.Framework.Scenes
newvel.Y = 0;
}
- string reason;
- if (!m_scene.TestLandRestrictions(UUID, out reason, ref newpos.X, ref newpos.Y))
+ if (!m_scene.TestLandRestrictions(UUID, out string reason, ref newpos.X, ref newpos.Y))
return ;
if (IsSatOnObject)
@@ -2004,6 +2002,12 @@ namespace OpenSim.Region.Framework.Scenes
{
public int sizeX;
public int sizeY;
+
+ public spRegionSizeInfo(int x, int y)
+ {
+ sizeX = x;
+ sizeY = y;
+ }
}
private Dictionary m_knownChildRegionsSizeInfo = new Dictionary();
@@ -2013,12 +2017,8 @@ namespace OpenSim.Region.Framework.Scenes
lock (m_knownChildRegions)
{
ulong regionHandle = region.RegionHandle;
- m_knownChildRegions.Add(regionHandle,capsPath);
-
- spRegionSizeInfo sizeInfo = new spRegionSizeInfo();
- sizeInfo.sizeX = region.RegionSizeX;
- sizeInfo.sizeY = region.RegionSizeY;
- m_knownChildRegionsSizeInfo[regionHandle] = sizeInfo;
+ m_knownChildRegions[regionHandle] = capsPath;
+ m_knownChildRegionsSizeInfo[regionHandle] = new spRegionSizeInfo(region.RegionSizeX, region.RegionSizeY); ;
}
}
@@ -2026,18 +2026,7 @@ namespace OpenSim.Region.Framework.Scenes
{
lock (m_knownChildRegions)
{
- spRegionSizeInfo sizeInfo = new spRegionSizeInfo();
- sizeInfo.sizeX = region.RegionSizeX;
- sizeInfo.sizeY = region.RegionSizeY;
- ulong regionHandle = region.RegionHandle;
-
- if (!m_knownChildRegionsSizeInfo.ContainsKey(regionHandle))
- {
- m_knownChildRegionsSizeInfo.Add(regionHandle, sizeInfo);
-
- }
- else
- m_knownChildRegionsSizeInfo[regionHandle] = sizeInfo;
+ m_knownChildRegionsSizeInfo[region.RegionHandle] = new spRegionSizeInfo(region.RegionSizeX, region.RegionSizeY);
}
}
@@ -2046,14 +2035,9 @@ namespace OpenSim.Region.Framework.Scenes
lock (m_knownChildRegions)
{
m_knownChildRegionsSizeInfo.Clear();
-
foreach (GridRegion region in regionsList)
{
- spRegionSizeInfo sizeInfo = new spRegionSizeInfo();
- sizeInfo.sizeX = region.RegionSizeX;
- sizeInfo.sizeY = region.RegionSizeY;
- ulong regionHandle = region.RegionHandle;
- m_knownChildRegionsSizeInfo.Add(regionHandle, sizeInfo);
+ m_knownChildRegionsSizeInfo[region.RegionHandle] = new spRegionSizeInfo(region.RegionSizeX, region.RegionSizeY);
}
}
}
@@ -2234,7 +2218,6 @@ namespace OpenSim.Region.Framework.Scenes
// Make sure it's not a login agent. We don't want to wait for updates during login
if (!IsNPC && !IsRealLogin(m_teleportFlags))
{
-
// Let's wait until UpdateAgent (called by departing region) is done
if (!WaitForUpdateAgent(client))
// The sending region never sent the UpdateAgent data, we have to refuse
@@ -4641,17 +4624,19 @@ namespace OpenSim.Region.Framework.Scenes
m_lastChildAgentUpdateDrawDistance = DrawDistance;
// m_lastChildAgentUpdateCamPosition = CameraPosition;
- AgentPosition agentpos = new AgentPosition();
- agentpos.AgentID = new UUID(UUID.Guid);
- agentpos.SessionID = ControllingClient.SessionId;
- agentpos.Size = Appearance.AvatarSize;
- agentpos.Center = CameraPosition;
- agentpos.Far = DrawDistance;
- agentpos.Position = AbsolutePosition;
- agentpos.Velocity = Velocity;
- agentpos.RegionHandle = RegionHandle;
- agentpos.GodData = GodController.State();
- agentpos.Throttles = ControllingClient.GetThrottlesPacked(1);
+ AgentPosition agentpos = new AgentPosition()
+ {
+ AgentID = new UUID(UUID.Guid),
+ SessionID = ControllingClient.SessionId,
+ Size = Appearance.AvatarSize,
+ Center = CameraPosition,
+ Far = DrawDistance,
+ Position = AbsolutePosition,
+ Velocity = Velocity,
+ RegionHandle = RegionHandle,
+ GodData = GodController.State(),
+ Throttles = ControllingClient.GetThrottlesPacked(1)
+ };
// Let's get this out of the update loop
Util.FireAndForget(
@@ -4798,15 +4783,12 @@ namespace OpenSim.Region.Framework.Scenes
if(newRegionHandle == curRegionHandle) //??
return byebyeRegions;
- uint newRegionX, newRegionY;
List knownRegions = KnownRegionHandles;
m_log.DebugFormat(
"[SCENE PRESENCE]: Closing child agents. Checking {0} regions in {1}",
knownRegions.Count, Scene.RegionInfo.RegionName);
- Util.RegionHandleToRegionLoc(newRegionHandle, out newRegionX, out newRegionY);
- uint x, y;
- spRegionSizeInfo regInfo;
+ Util.RegionHandleToRegionLoc(newRegionHandle, out uint newRegionX, out uint newRegionY);
foreach (ulong handle in knownRegions)
{
@@ -4826,8 +4808,8 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- Util.RegionHandleToRegionLoc(handle, out x, out y);
- if (m_knownChildRegionsSizeInfo.TryGetValue(handle, out regInfo))
+ Util.RegionHandleToRegionLoc(handle, out uint x, out uint y);
+ if (m_knownChildRegionsSizeInfo.TryGetValue(handle, out spRegionSizeInfo regInfo))
{
// if (Util.IsOutsideView(RegionViewDistance, x, newRegionX, y, newRegionY,
// for now need to close all but first order bc RegionViewDistance it the target value not ours
@@ -5159,11 +5141,13 @@ namespace OpenSim.Region.Framework.Scenes
foreach (ControllerData c in cAgent.Controllers)
{
- ScriptControllers sc = new ScriptControllers();
- sc.objectID = c.ObjectID;
- sc.itemID = c.ItemID;
- sc.ignoreControls = (ScriptControlled)c.IgnoreControls;
- sc.eventControls = (ScriptControlled)c.EventControls;
+ ScriptControllers sc = new ScriptControllers()
+ {
+ objectID = c.ObjectID,
+ itemID = c.ItemID,
+ ignoreControls = (ScriptControlled)c.IgnoreControls,
+ eventControls = (ScriptControlled)c.EventControls
+ };
scriptedcontrols[sc.itemID] = sc;
IgnoredControls |= sc.ignoreControls; // this is not correct, aparently only last applied should count
@@ -5938,12 +5922,14 @@ namespace OpenSim.Region.Framework.Scenes
ControllingClient.SendTakeControls(controls, false, false);
ControllingClient.SendTakeControls(controls, true, false);
- ScriptControllers obj = new ScriptControllers();
- obj.ignoreControls = ScriptControlled.CONTROL_ZERO;
- obj.eventControls = ScriptControlled.CONTROL_ZERO;
+ ScriptControllers obj = new ScriptControllers()
+ {
+ ignoreControls = ScriptControlled.CONTROL_ZERO,
+ eventControls = ScriptControlled.CONTROL_ZERO,
+ objectID = part.ParentGroup.UUID,
+ itemID = Script_item_UUID
+ };
- obj.objectID = part.ParentGroup.UUID;
- obj.itemID = Script_item_UUID;
if (pass_on == 0 && accept == 0)
{
IgnoredControls |= (ScriptControlled)controls;
@@ -6072,12 +6058,11 @@ namespace OpenSim.Region.Framework.Scenes
public void UnRegisterControlEventsToScript(uint Obj_localID, UUID Script_item_UUID)
{
- ScriptControllers takecontrols;
SceneObjectPart part = m_scene.GetSceneObjectPart(Obj_localID);
lock (scriptedcontrols)
{
- if (scriptedcontrols.TryGetValue(Script_item_UUID, out takecontrols))
+ if (scriptedcontrols.TryGetValue(Script_item_UUID, out ScriptControllers takecontrols))
{
ScriptControlled sctc = takecontrols.eventControls;
@@ -6455,10 +6440,8 @@ namespace OpenSim.Region.Framework.Scenes
// This is the behavior in OpenSim for a very long time, different from SL
private bool CheckAndAdjustLandingPoint_OS(ref Vector3 pos, ref Vector3 lookat, ref bool positionChanged)
{
- string reason;
-
// Honor bans
- if (!m_scene.TestLandRestrictions(UUID, out reason, ref pos.X, ref pos.Y))
+ if (!m_scene.TestLandRestrictions(UUID, out string reason, ref pos.X, ref pos.Y))
return false;
SceneObjectGroup telehub = null;
@@ -6510,8 +6493,6 @@ namespace OpenSim.Region.Framework.Scenes
// This is a behavior coming from AVN, somewhat mimicking SL
private bool CheckAndAdjustLandingPoint_SL(ref Vector3 pos, ref Vector3 lookat, ref bool positionChanged)
{
- string reason;
-
// dont mess with gods
if(IsGod)
return true;
@@ -6531,7 +6512,7 @@ namespace OpenSim.Region.Framework.Scenes
}
// Honor bans, actually we don't honour them
- if (!m_scene.TestLandRestrictions(UUID, out reason, ref pos.X, ref pos.Y))
+ if (!m_scene.TestLandRestrictions(UUID, out string reason, ref pos.X, ref pos.Y))
return false;
ILandObject land = m_scene.LandChannel.GetLandObject(pos.X, pos.Y);
@@ -6564,52 +6545,56 @@ namespace OpenSim.Region.Framework.Scenes
private DetectedObject CreateDetObject(SceneObjectPart obj)
{
- DetectedObject detobj = new DetectedObject();
- detobj.keyUUID = obj.UUID;
- detobj.nameStr = obj.Name;
- detobj.ownerUUID = obj.OwnerID;
- detobj.posVector = obj.AbsolutePosition;
- detobj.rotQuat = obj.GetWorldRotation();
- detobj.velVector = obj.Velocity;
- detobj.colliderType = 0;
- detobj.groupUUID = obj.GroupID;
- detobj.linkNumber = 0;
-
- return detobj;
+ return new DetectedObject()
+ {
+ keyUUID = obj.UUID,
+ nameStr = obj.Name,
+ ownerUUID = obj.OwnerID,
+ posVector = obj.AbsolutePosition,
+ rotQuat = obj.GetWorldRotation(),
+ velVector = obj.Velocity,
+ colliderType = 0,
+ groupUUID = obj.GroupID,
+ linkNumber = 0
+ };
}
private DetectedObject CreateDetObject(ScenePresence av)
{
- DetectedObject detobj = new DetectedObject();
- detobj.keyUUID = av.UUID;
- detobj.nameStr = av.ControllingClient.Name;
- detobj.ownerUUID = av.UUID;
- detobj.posVector = av.AbsolutePosition;
- detobj.rotQuat = av.Rotation;
- detobj.velVector = av.Velocity;
- detobj.colliderType = av.IsNPC ? 0x20 : 0x1; // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
- if(av.IsSatOnObject)
- detobj.colliderType |= 0x4; //passive
- else if(detobj.velVector != Vector3.Zero)
- detobj.colliderType |= 0x2; //active
- detobj.groupUUID = av.ControllingClient.ActiveGroupId;
- detobj.linkNumber = 0;
+ DetectedObject detobj = new DetectedObject()
+ {
+ keyUUID = av.UUID,
+ nameStr = av.ControllingClient.Name,
+ ownerUUID = av.UUID,
+ posVector = av.AbsolutePosition,
+ rotQuat = av.Rotation,
+ velVector = av.Velocity,
+ colliderType = av.IsNPC ? 0x20 : 0x1, // OpenSim\Region\ScriptEngine\Shared\Helpers.cs
+ groupUUID = av.ControllingClient.ActiveGroupId,
+ linkNumber = 0
+ };
+ if (av.IsSatOnObject)
+ detobj.colliderType |= 0x4; //passive
+ else if (detobj.velVector != Vector3.Zero)
+ detobj.colliderType |= 0x2; //active
return detobj;
}
private DetectedObject CreateDetObjectForGround()
{
- DetectedObject detobj = new DetectedObject();
- detobj.keyUUID = UUID.Zero;
- detobj.nameStr = "";
- detobj.ownerUUID = UUID.Zero;
- detobj.posVector = AbsolutePosition;
- detobj.rotQuat = Quaternion.Identity;
- detobj.velVector = Vector3.Zero;
- detobj.colliderType = 0;
- detobj.groupUUID = UUID.Zero;
- detobj.linkNumber = 0;
+ DetectedObject detobj = new DetectedObject()
+ {
+ keyUUID = UUID.Zero,
+ nameStr = "",
+ ownerUUID = UUID.Zero,
+ posVector = AbsolutePosition,
+ rotQuat = Quaternion.Identity,
+ velVector = Vector3.Zero,
+ colliderType = 0,
+ groupUUID = UUID.Zero,
+ linkNumber = 0
+ };
return detobj;
}
@@ -6667,9 +6652,7 @@ namespace OpenSim.Region.Framework.Scenes
if ((dest.RootPart.ScriptEvents & ev) != 0)
{
ColliderArgs LandCollidingMessage = new ColliderArgs();
- List colliding = new List();
-
- colliding.Add(CreateDetObjectForGround());
+ List colliding = new List(){CreateDetObjectForGround()};
LandCollidingMessage.Colliders = colliding;
notify(dest.RootPart.LocalId, LandCollidingMessage);
@@ -6711,10 +6694,12 @@ namespace OpenSim.Region.Framework.Scenes
curcontact = coldata[id];
if (Math.Abs(curcontact.RelativeSpeed) > 0.2)
{
- soundinfo = new CollisionForSoundInfo();
- soundinfo.colliderID = id;
- soundinfo.position = curcontact.Position;
- soundinfo.relativeVel = curcontact.RelativeSpeed;
+ soundinfo = new CollisionForSoundInfo()
+ {
+ colliderID = id,
+ position = curcontact.Position,
+ relativeVel = curcontact.RelativeSpeed
+ };
soundinfolist.Add(soundinfo);
}
}
@@ -7088,7 +7073,7 @@ namespace OpenSim.Region.Framework.Scenes
private int m_bandwidthBurst = 20000;
private int m_bytesControl;
private double m_lastBandwithTime;
- private object m_throttleLock = new object();
+ private readonly object m_throttleLock = new object();
public bool CapCanSendAsset(int type, int size)
{