mirror of
https://github.com/opensim/opensim.git
synced 2026-08-11 11:57:03 +08:00
cosmetics on scenepresence and grid map
This commit is contained in:
@@ -116,8 +116,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public void TriggerScenePresenceUpdated()
|
||||
{
|
||||
if (m_scene != null)
|
||||
m_scene.EventManager.TriggerScenePresenceUpdated(this);
|
||||
m_scene?.EventManager.TriggerScenePresenceUpdated(this);
|
||||
}
|
||||
|
||||
public bool IsNPC { get; private set; }
|
||||
@@ -146,7 +145,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
public bool HideTitle;
|
||||
public bool MuteCollisions;
|
||||
|
||||
private ScenePresenceStateMachine m_stateMachine;
|
||||
private readonly ScenePresenceStateMachine m_stateMachine;
|
||||
|
||||
/// <summary>
|
||||
/// The current state of this presence. Governs only the existence lifecycle. See ScenePresenceStateMachine
|
||||
@@ -173,9 +172,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// TODO: The child -> agent transition should be folded into LifecycleState and the CompleteMovement
|
||||
/// regulation done there.
|
||||
/// </remarks>
|
||||
private readonly object m_completeMovementLock = new object();
|
||||
private readonly object m_completeMovementLock = new();
|
||||
|
||||
private static readonly Vector3 HEAD_ADJUSTMENT = new Vector3(0f, 0f, 0.3f);
|
||||
private static readonly Vector3 HEAD_ADJUSTMENT = new(0f, 0f, 0.3f);
|
||||
|
||||
/// <summary>
|
||||
/// Experimentally determined "fudge factor" to make sit-target positions
|
||||
@@ -185,7 +184,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// rotation, prim cut, prim twist, prim taper, and prim shear. See mantis
|
||||
/// issue #1716
|
||||
/// </summary>
|
||||
public static readonly Vector3 SIT_TARGET_ADJUSTMENT = new Vector3(0.0f, 0.0f, 0.4f);
|
||||
public static readonly Vector3 SIT_TARGET_ADJUSTMENT = new(0.0f, 0.0f, 0.4f);
|
||||
public readonly bool LegacySitOffsets = true;
|
||||
|
||||
/// <summary>
|
||||
@@ -204,7 +203,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
private UUID m_currentParcelUUID = UUID.Zero;
|
||||
private bool m_previusParcelHide = false;
|
||||
private bool m_currentParcelHide = false;
|
||||
private readonly object parcelLock = new Object();
|
||||
private readonly object parcelLock = new();
|
||||
public double ParcelDwellTickMS;
|
||||
|
||||
public UUID currentParcelUUID
|
||||
@@ -304,11 +303,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// TODO: For some reason, we effectively have a list both here and in Appearance. Need to work out if this is
|
||||
/// necessary.
|
||||
/// </remarks>
|
||||
private List<SceneObjectGroup> m_attachments = new List<SceneObjectGroup>();
|
||||
private readonly List<SceneObjectGroup> m_attachments = new();
|
||||
|
||||
public Object AttachmentsSyncLock { get; private set; }
|
||||
|
||||
private Dictionary<UUID, ScriptControllers> scriptedcontrols = new Dictionary<UUID, ScriptControllers>();
|
||||
private readonly Dictionary<UUID, ScriptControllers> scriptedcontrols = new();
|
||||
private ScriptControlled IgnoredControls = ScriptControlled.CONTROL_ZERO;
|
||||
private ScriptControlled LastCommands = ScriptControlled.CONTROL_ZERO;
|
||||
private bool MouseDown = false;
|
||||
@@ -322,7 +321,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
private Vector3 m_lastPosition;
|
||||
private Quaternion m_lastRotation;
|
||||
private Vector3 m_lastVelocity;
|
||||
private Vector3 m_lastSize = new Vector3(0.45f,0.6f,1.9f);
|
||||
private Vector3 m_lastSize = new(0.45f, 0.6f, 1.9f);
|
||||
private int NeedInitialData = 1;
|
||||
|
||||
private int m_userFlags;
|
||||
@@ -349,7 +348,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
set { PhysicsActor.IsColliding = value; }
|
||||
}
|
||||
|
||||
private List<uint> m_lastColliders = new List<uint>();
|
||||
private List<uint> m_lastColliders = new();
|
||||
private bool m_lastLandCollide;
|
||||
|
||||
private TeleportFlags m_teleportFlags;
|
||||
@@ -388,8 +387,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
private float m_FOV = 1.04f;
|
||||
|
||||
private const int LAND_VELOCITYMAG_MAX = 12;
|
||||
|
||||
private const float FLY_ROLL_MAX_RADIANS = 1.1f;
|
||||
|
||||
private const float FLY_ROLL_RADIANS_PER_UPDATE = 0.06f;
|
||||
@@ -477,7 +474,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
private bool CameraConstraintActive;
|
||||
|
||||
private readonly object m_collisionEventLock = new Object();
|
||||
private readonly object m_collisionEventLock = new();
|
||||
|
||||
private int m_movementAnimationUpdateCounter = 0;
|
||||
|
||||
@@ -505,7 +502,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
get { return m_InTransitScriptStates; }
|
||||
private set { m_InTransitScriptStates = value; }
|
||||
}
|
||||
private List<string> m_InTransitScriptStates = new List<string>();
|
||||
private List<string> m_InTransitScriptStates = new();
|
||||
|
||||
/// <summary>
|
||||
/// Position at which a significant movement was made
|
||||
@@ -535,10 +532,10 @@ 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.
|
||||
/// </summary>
|
||||
private readonly object m_originRegionIDAccessLock = new object();
|
||||
private readonly object m_originRegionIDAccessLock = new();
|
||||
|
||||
|
||||
private AutoResetEvent m_updateAgentReceivedAfterTransferEvent = new AutoResetEvent(false);
|
||||
private AutoResetEvent m_updateAgentReceivedAfterTransferEvent = new(false);
|
||||
|
||||
/// <summary>
|
||||
/// Used by the entity transfer module to signal when the presence should not be closed because a subsequent
|
||||
@@ -607,7 +604,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
public GodController GodController { get; private set; }
|
||||
|
||||
private ulong m_rootRegionHandle;
|
||||
private Vector3 m_rootRegionPosition = new Vector3();
|
||||
private Vector3 m_rootRegionPosition = new();
|
||||
|
||||
public ulong RegionHandle
|
||||
{
|
||||
@@ -628,7 +625,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// </summary>
|
||||
// protected Vector3 m_lastCameraPosition;
|
||||
|
||||
private Vector4 m_lastCameraCollisionPlane = new Vector4(0f, 0f, 0f, 1);
|
||||
private Vector4 m_lastCameraCollisionPlane = new(0f, 0f, 0f, 1);
|
||||
private bool m_doingCamRayCast = false;
|
||||
|
||||
public Vector3 CameraPosition { get; set; }
|
||||
@@ -645,7 +642,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
get
|
||||
{
|
||||
Vector3 a = new Vector3(CameraAtAxis.X, CameraAtAxis.Y, 0);
|
||||
Vector3 a = new(CameraAtAxis.X, CameraAtAxis.Y, 0);
|
||||
a.Normalize();
|
||||
return a;
|
||||
}
|
||||
@@ -1273,7 +1270,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if(m_healRatePerFrame != 0f && Health != 100.0f)
|
||||
{
|
||||
float last = Health;
|
||||
Health += m_healRatePerFrame;
|
||||
if(Health > 100.0f)
|
||||
{
|
||||
@@ -1481,7 +1477,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
float dist = physTestHeight - groundHeight + localAVHalfHeight;
|
||||
|
||||
Vector3 direction = new Vector3(0f, 0f, -1f);
|
||||
Vector3 direction = new(0f, 0f, -1f);
|
||||
Vector3 RayStart = pos;
|
||||
RayStart.Z = physTestHeight;
|
||||
|
||||
@@ -1536,8 +1532,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
Vector3 vel = Velocity;
|
||||
AddToPhysicalScene(isFlying);
|
||||
if (PhysicsActor != null)
|
||||
PhysicsActor.SetMomentum(vel);
|
||||
PhysicsActor?.SetMomentum(vel);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1755,14 +1750,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
AbsolutePosition = pos;
|
||||
AddToPhysicalScene(isFlying);
|
||||
if (PhysicsActor != null)
|
||||
{
|
||||
if (v.HasValue)
|
||||
PhysicsActor.SetMomentum((Vector3)v);
|
||||
else
|
||||
PhysicsActor.SetMomentum(vel);
|
||||
}
|
||||
|
||||
PhysicsActor?.SetMomentum(v ?? vel);
|
||||
SendTerseUpdateToAllClients();
|
||||
}
|
||||
|
||||
@@ -1808,7 +1796,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
newvel.Y = 0;
|
||||
}
|
||||
|
||||
if (!m_scene.TestLandRestrictions(UUID, out string reason, ref newpos.X, ref newpos.Y))
|
||||
if (!m_scene.TestLandRestrictions(UUID, out string _, ref newpos.X, ref newpos.Y))
|
||||
return ;
|
||||
|
||||
if (IsSitting)
|
||||
@@ -1817,11 +1805,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if(m_movingToTarget)
|
||||
ResetMoveToTarget();
|
||||
|
||||
float localHalfAVHeight = 0.8f;
|
||||
if (Appearance != null)
|
||||
localHalfAVHeight = Appearance.AvatarHeight * 0.5f;
|
||||
|
||||
float posZLimit = (float)Scene.Heightmap[(int)newpos.X, (int)newpos.Y];
|
||||
float localHalfAVHeight = Appearance is null ? 0.8f : Appearance.AvatarHeight * 0.5f;
|
||||
float posZLimit = Scene.GetGroundHeight(newpos.X, newpos.Y);
|
||||
posZLimit += localHalfAVHeight + 0.1f;
|
||||
if (newpos.Z < posZLimit)
|
||||
newpos.Z = posZLimit;
|
||||
@@ -1843,7 +1828,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
newlookat.Z = 0;
|
||||
newlookat.Normalize();
|
||||
if (Math.Abs(newlookat.X) > 0.001 || Math.Abs(newlookat.Y) > 0.001)
|
||||
if (MathF.Abs(newlookat.X) > 0.001f || MathF.Abs(newlookat.Y) > 0.001f)
|
||||
lookat = newlookat;
|
||||
}
|
||||
else if((flags & 4) != 0)
|
||||
@@ -1854,7 +1839,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
newlookat = m_velocity;
|
||||
newlookat.Z = 0;
|
||||
newlookat.Normalize();
|
||||
if (Math.Abs(newlookat.X) > 0.001 || Math.Abs(newlookat.Y) > 0.001)
|
||||
if (MathF.Abs(newlookat.X) > 0.001f || MathF.Abs(newlookat.Y) > 0.001f)
|
||||
lookat = newlookat;
|
||||
}
|
||||
|
||||
@@ -1866,8 +1851,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if ((flags & 1) != 0)
|
||||
{
|
||||
if (PhysicsActor != null)
|
||||
PhysicsActor.SetMomentum(newvel);
|
||||
PhysicsActor?.SetMomentum(newvel);
|
||||
m_velocity = newvel;
|
||||
}
|
||||
|
||||
@@ -1977,7 +1961,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
// neighbouring regions we have enabled a child agent in
|
||||
// holds the seed cap for the child agent in that region
|
||||
private Dictionary<ulong, string> m_knownChildRegions = new Dictionary<ulong, string>();
|
||||
private Dictionary<ulong, string> m_knownChildRegions = new();
|
||||
|
||||
struct spRegionSizeInfo
|
||||
{
|
||||
@@ -1991,7 +1975,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<ulong, spRegionSizeInfo> m_knownChildRegionsSizeInfo = new Dictionary<ulong, spRegionSizeInfo>();
|
||||
private Dictionary<ulong, spRegionSizeInfo> m_knownChildRegionsSizeInfo = new();
|
||||
|
||||
public void AddNeighbourRegion(GridRegion region, string capsPath)
|
||||
{
|
||||
@@ -2160,18 +2144,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
Rotation = Quaternion.Identity;
|
||||
return;
|
||||
}
|
||||
n = lookAt.X/(float)Math.Sqrt(n);
|
||||
float angle = (float)Math.Acos(n);
|
||||
n = lookAt.X/MathF.Sqrt(n);
|
||||
float angle = MathF.Acos(n);
|
||||
angle *= 0.5f;
|
||||
float s = (float)Math.Sin(angle);
|
||||
if(lookAt.Y < 0)
|
||||
s = -s;
|
||||
Rotation = new Quaternion(
|
||||
0f,
|
||||
0f,
|
||||
s,
|
||||
(float)Math.Cos(angle)
|
||||
);
|
||||
float s = lookAt.Y >= 0 ? MathF.Sin(angle) : -MathF.Sin(angle);
|
||||
Rotation = new Quaternion(0f, 0f, s, MathF.Cos(angle));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2326,8 +2303,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
Scene.SendLayerData(ControllingClient);
|
||||
|
||||
// send initial land overlay and parcel
|
||||
if (landch != null)
|
||||
landch.sendClientInitialLandInfo(client, !m_gotCrossUpdate);
|
||||
landch?.sendClientInitialLandInfo(client, !m_gotCrossUpdate);
|
||||
}
|
||||
|
||||
List<ScenePresence> allpresences = m_scene.GetScenePresences();
|
||||
@@ -2346,8 +2322,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
int[] animseqs = null;
|
||||
UUID[] animsobjs = null;
|
||||
|
||||
if (Animator != null)
|
||||
Animator.GetArrays(out animIDs, out animseqs, out animsobjs);
|
||||
Animator?.GetArrays(out animIDs, out animseqs, out animsobjs);
|
||||
|
||||
bool haveAnims = (animIDs != null && animseqs != null && animsobjs != null);
|
||||
|
||||
@@ -2424,10 +2399,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
// Create child agents in neighbouring regions
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
if (m_agentTransfer != null)
|
||||
{
|
||||
m_agentTransfer.EnableChildAgents(this);
|
||||
}
|
||||
m_agentTransfer?.EnableChildAgents(this);
|
||||
|
||||
m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000;
|
||||
m_lastChildAgentUpdatePosition = AbsolutePosition;
|
||||
@@ -2499,7 +2471,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
if (CameraConstraintActive)
|
||||
{
|
||||
Vector4 plane = new Vector4(0.9f, 0.0f, 0.361f, -10000f); // not right...
|
||||
Vector4 plane = new(0.9f, 0.0f, 0.361f, -10000f); // not right...
|
||||
UpdateCameraCollisionPlane(plane);
|
||||
CameraConstraintActive = false;
|
||||
}
|
||||
@@ -2531,7 +2503,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if (CameraConstraintActive)
|
||||
{
|
||||
Vector4 plane = new Vector4(0.9f, 0.0f, 0.361f, -10000f); // not right...
|
||||
Vector4 plane = new(0.9f, 0.0f, 0.361f, -10000f); // not right...
|
||||
UpdateCameraCollisionPlane(plane);
|
||||
CameraConstraintActive = false;
|
||||
}
|
||||
@@ -2564,7 +2536,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
collisionPoint.Y = (float) Math.Round(collisionPoint.Y, 1);
|
||||
collisionPoint.Z = (float) Math.Round(collisionPoint.Z, 1);
|
||||
|
||||
Vector4 plane = new Vector4(pNormal.X, pNormal.Y, pNormal.Z, collisionPoint.Dot(pNormal));
|
||||
Vector4 plane = new(pNormal.X, pNormal.Y, pNormal.Z, collisionPoint.Dot(pNormal));
|
||||
UpdateCameraCollisionPlane(plane);
|
||||
}
|
||||
}
|
||||
@@ -2579,13 +2551,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
collisionPoint.Y = (float) Math.Round(collisionPoint.Y, 1);
|
||||
collisionPoint.Z = (float) Math.Round(collisionPoint.Z, 1);
|
||||
|
||||
Vector4 plane = new Vector4(pNormal.X, pNormal.Y, pNormal.Z,collisionPoint.Dot(pNormal));
|
||||
Vector4 plane = new(pNormal.X, pNormal.Y, pNormal.Z,collisionPoint.Dot(pNormal));
|
||||
UpdateCameraCollisionPlane(plane);
|
||||
}
|
||||
}
|
||||
else if(CameraConstraintActive)
|
||||
{
|
||||
Vector4 plane = new Vector4(0.9f, 0.0f, 0.361f, -9000f); // not right...
|
||||
Vector4 plane = new(0.9f, 0.0f, 0.361f, -9000f); // not right...
|
||||
UpdateCameraCollisionPlane(plane);
|
||||
CameraConstraintActive = false;
|
||||
}
|
||||
@@ -2958,7 +2930,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if (m_moveToSpeed > 0 &&
|
||||
distanceToTarget <= m_moveToSpeed * m_moveToSpeed * Scene.FrameTime * Scene.FrameTime)
|
||||
m_moveToSpeed = (float)Math.Sqrt(distanceToTarget) / Scene.FrameTime;
|
||||
m_moveToSpeed = MathF.Sqrt(distanceToTarget) / Scene.FrameTime;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -2968,10 +2940,10 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
// unknown forces are acting on the avatar and we need to adaptively respond
|
||||
// to such forces, but the following simple approach seems to works fine.
|
||||
|
||||
float angle = 0.5f * (float)Math.Atan2(LocalVectorToTarget3D.Y, LocalVectorToTarget3D.X);
|
||||
Quaternion rot = new Quaternion(0,0, (float)Math.Sin(angle),(float)Math.Cos(angle));
|
||||
float angle = 0.5f * MathF.Atan2(LocalVectorToTarget3D.Y, LocalVectorToTarget3D.X);
|
||||
Quaternion rot = new(0,0, MathF.Sin(angle),MathF.Cos(angle));
|
||||
Rotation = rot;
|
||||
LocalVectorToTarget3D = LocalVectorToTarget3D * Quaternion.Inverse(rot); // change to avatar coords
|
||||
LocalVectorToTarget3D *= Quaternion.Inverse(rot); // change to avatar coords
|
||||
if(!Flying)
|
||||
LocalVectorToTarget3D.Z = 0;
|
||||
LocalVectorToTarget3D.Normalize();
|
||||
@@ -3079,7 +3051,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
pos.Y = regionSize.Y - 0.5f;
|
||||
|
||||
float terrainHeight;
|
||||
Scene targetScene = m_scene;
|
||||
terrainHeight = m_scene.GetGroundHeight(pos.X, pos.Y);
|
||||
|
||||
// dont try to land underground
|
||||
@@ -3088,15 +3059,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if(terrainHeight > pos.Z)
|
||||
pos.Z = terrainHeight;
|
||||
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Avatar {0} set move to target {1} (terrain height {2}) in {3}",
|
||||
// Name, pos, terrainHeight, m_scene.RegionInfo.RegionName);
|
||||
//m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Avatar {0} set move to target {1} (terrain height {2}) in {3}",
|
||||
// Name, pos, terrainHeight, m_scene.RegionInfo.RegionName);
|
||||
|
||||
bool shouldfly = true;
|
||||
if(IsNPC)
|
||||
{
|
||||
if (!Flying)
|
||||
shouldfly = noFly ? false : (pos.Z > terrainHeight + Appearance.AvatarHeight);
|
||||
shouldfly = !noFly && (pos.Z > terrainHeight + Appearance.AvatarHeight);
|
||||
LandAtTarget = landAtTarget && shouldfly;
|
||||
}
|
||||
else
|
||||
@@ -3196,7 +3167,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
Quaternion standRotation = part.ParentGroup.RootPart.RotationOffset;
|
||||
Vector3 sitWorldPosition = part.ParentGroup.AbsolutePosition + m_pos * standRotation;
|
||||
|
||||
standRotation = standRotation * m_bodyRot;
|
||||
standRotation *= m_bodyRot;
|
||||
m_bodyRot = standRotation;
|
||||
|
||||
Quaternion standRotationZ;
|
||||
@@ -3360,7 +3331,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (!part.IsRoot)
|
||||
{
|
||||
sitOrientation = part.RotationOffset * sitOrientation;
|
||||
offset = offset * part.RotationOffset;
|
||||
offset *= part.RotationOffset;
|
||||
offset += part.OffsetPosition;
|
||||
|
||||
if (cameraAtOffset.IsZero() && cameraEyeOffset.IsZero())
|
||||
@@ -3370,9 +3341,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
else
|
||||
{
|
||||
cameraAtOffset = cameraAtOffset * part.RotationOffset;
|
||||
cameraAtOffset *= part.RotationOffset;
|
||||
cameraAtOffset += part.OffsetPosition;
|
||||
cameraEyeOffset = cameraEyeOffset * part.RotationOffset;
|
||||
cameraEyeOffset *= part.RotationOffset;
|
||||
cameraEyeOffset += part.OffsetPosition;
|
||||
}
|
||||
}
|
||||
@@ -3494,7 +3465,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if (!part.IsRoot)
|
||||
{
|
||||
Orientation = part.RotationOffset * Orientation;
|
||||
offset = offset * part.RotationOffset;
|
||||
offset *= part.RotationOffset;
|
||||
offset += part.OffsetPosition;
|
||||
|
||||
if (cameraAtOffset.IsZero() && cameraEyeOffset.IsZero())
|
||||
@@ -3504,9 +3475,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
else
|
||||
{
|
||||
cameraAtOffset = cameraAtOffset * part.RotationOffset;
|
||||
cameraAtOffset *= part.RotationOffset;
|
||||
cameraAtOffset += part.OffsetPosition;
|
||||
cameraEyeOffset = cameraEyeOffset * part.RotationOffset;
|
||||
cameraEyeOffset *= part.RotationOffset;
|
||||
cameraEyeOffset += part.OffsetPosition;
|
||||
}
|
||||
}
|
||||
@@ -3560,11 +3531,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
Vector3 sitTargetPos = part.SitTargetPosition;
|
||||
Quaternion sitTargetOrient = part.SitTargetOrientation;
|
||||
|
||||
// m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Sitting {0} at sit target {1}, {2} on {3} {4}",
|
||||
// Name, sitTargetPos, sitTargetOrient, part.Name, part.LocalId);
|
||||
//m_log.DebugFormat(
|
||||
// "[SCENE PRESENCE]: Sitting {0} at sit target {1}, {2} on {3} {4}",
|
||||
// Name, sitTargetPos, sitTargetOrient, part.Name, part.LocalId);
|
||||
|
||||
double x, y, z, m;
|
||||
float x, y, z, m;
|
||||
Vector3 sitOffset;
|
||||
Quaternion r = sitTargetOrient;
|
||||
|
||||
@@ -3573,7 +3544,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if (LegacySitOffsets)
|
||||
{
|
||||
double m1,m2;
|
||||
float m1, m2;
|
||||
|
||||
m1 = r.X * r.X + r.Y * r.Y;
|
||||
m2 = r.Z * r.Z + r.W * r.W;
|
||||
@@ -3588,35 +3559,35 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
// This constant is emperically determined to be what is used in SL.
|
||||
// See also http://opensimulator.org/mantis/view.php?id=7096
|
||||
double offset = 0.05;
|
||||
float offset = 0.05f;
|
||||
|
||||
// Normally m will be ~ 1, but if someone passed a handcrafted quaternion
|
||||
// to llSitTarget with values so small that squaring them is rounded off
|
||||
// to zero, then m could be zero. The result of this floating point
|
||||
// round off error (causing us to skip this impossible normalization)
|
||||
// is only 5 cm.
|
||||
if (m > 0.000001)
|
||||
if (m > 0.000001f)
|
||||
{
|
||||
offset /= m;
|
||||
}
|
||||
|
||||
Vector3 up = new Vector3((float)x, (float)y, (float)z);
|
||||
sitOffset = up * (float)offset;
|
||||
Vector3 up = new (x, y, z);
|
||||
sitOffset = up * offset;
|
||||
newPos = sitTargetPos - sitOffset + SIT_TARGET_ADJUSTMENT;
|
||||
}
|
||||
else
|
||||
{
|
||||
m = r.X * r.X + r.Y * r.Y + r.Z * r.Z + r.W * r.W;
|
||||
|
||||
if (Math.Abs(1.0 - m) > 0.000001)
|
||||
if (MathF.Abs(1.0f - m) > 0.000001f)
|
||||
{
|
||||
if(m != 0)
|
||||
if(m != 0f)
|
||||
{
|
||||
m = 1.0 / Math.Sqrt(m);
|
||||
r.X *= (float)m;
|
||||
r.Y *= (float)m;
|
||||
r.Z *= (float)m;
|
||||
r.W *= (float)m;
|
||||
m = 1.0f / MathF.Sqrt(m);
|
||||
r.X *= m;
|
||||
r.Y *= m;
|
||||
r.Z *= m;
|
||||
r.W *= m;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3624,14 +3595,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
r.Y = 0.0f;
|
||||
r.Z = 0.0f;
|
||||
r.W = 1.0f;
|
||||
m = 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
x = 2 * (r.X * r.Z + r.Y * r.W);
|
||||
y = 2 * (-r.X * r.W + r.Y * r.Z);
|
||||
z = -r.X * r.X - r.Y * r.Y + r.Z * r.Z + r.W * r.W;
|
||||
Vector3 up = new Vector3((float)x, (float)y, (float)z);
|
||||
Vector3 up = new(x, y, z);
|
||||
sitOffset = up * Appearance.AvatarHeight * 0.02638f;
|
||||
newPos = sitTargetPos + sitOffset + SIT_TARGET_ADJUSTMENT;
|
||||
}
|
||||
@@ -3642,7 +3612,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
else
|
||||
{
|
||||
newPos = newPos * part.RotationOffset;
|
||||
newPos *= part.RotationOffset;
|
||||
newRot = part.RotationOffset * sitTargetOrient;
|
||||
}
|
||||
|
||||
@@ -3650,7 +3620,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_pos = newPos;
|
||||
Rotation = newRot;
|
||||
|
||||
// ParentPosition = part.AbsolutePosition;
|
||||
//ParentPosition = part.AbsolutePosition;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4078,10 +4048,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_newCallbackURI = null;
|
||||
}
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
if (m_agentTransfer != null)
|
||||
{
|
||||
m_agentTransfer.CloseOldChildAgents(this);
|
||||
}
|
||||
m_agentTransfer?.CloseOldChildAgents(this);
|
||||
}
|
||||
|
||||
m_log.DebugFormat("[SCENE PRESENCE({0})]: SendInitialData for {1}", m_scene.RegionInfo.RegionName, UUID);
|
||||
@@ -4090,8 +4057,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_scene.SendLayerData(ControllingClient);
|
||||
|
||||
ILandChannel landch = m_scene.LandChannel;
|
||||
if (landch != null)
|
||||
landch.sendClientInitialLandInfo(ControllingClient, true);
|
||||
landch?.sendClientInitialLandInfo(ControllingClient, true);
|
||||
}
|
||||
|
||||
m_log.DebugFormat("[SCENE PRESENCE({0})]: SendInitialData at parcel {1}", m_scene.RegionInfo.RegionName, currentParcelUUID);
|
||||
@@ -4117,17 +4083,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
foreach (EntityBase e in entities)
|
||||
{
|
||||
if (e != null && e is SceneObjectGroup && !((SceneObjectGroup)e).IsAttachment)
|
||||
((SceneObjectGroup)e).SendFullAnimUpdateToClient(ControllingClient);
|
||||
if (e is SceneObjectGroup sog && !sog.IsAttachment)
|
||||
sog.SendFullAnimUpdateToClient(ControllingClient);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (EntityBase e in entities)
|
||||
{
|
||||
if (e != null && e is SceneObjectGroup && !((SceneObjectGroup)e).IsAttachment)
|
||||
if (e is SceneObjectGroup grp && !grp.IsAttachment)
|
||||
{
|
||||
SceneObjectGroup grp = e as SceneObjectGroup;
|
||||
if(grp.IsViewerCachable)
|
||||
grp.SendUpdateProbes(ControllingClient);
|
||||
else
|
||||
@@ -4147,10 +4112,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
// Create child agents in neighbouring regions
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
if (m_agentTransfer != null)
|
||||
{
|
||||
m_agentTransfer.EnableChildAgents(this);
|
||||
}
|
||||
m_agentTransfer?.EnableChildAgents(this);
|
||||
|
||||
m_lastChildUpdatesTime = Util.EnvironmentTickCount() + 10000;
|
||||
m_lastChildAgentUpdatePosition = AbsolutePosition;
|
||||
@@ -4518,7 +4480,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_lastChildAgentUpdateDrawDistance = DrawDistance;
|
||||
// m_lastChildAgentUpdateCamPosition = CameraPosition;
|
||||
|
||||
AgentPosition agentpos = new AgentPosition()
|
||||
AgentPosition agentpos = new()
|
||||
{
|
||||
AgentID = UUID,
|
||||
SessionID = ControllingClient.SessionId,
|
||||
@@ -4668,7 +4630,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
public List<ulong> GetChildAgentsToClose(ulong newRegionHandle, int newRegionSizeX, int newRegionSizeY)
|
||||
{
|
||||
ulong curRegionHandle = m_scene.RegionInfo.RegionHandle;
|
||||
List<ulong> byebyeRegions = new List<ulong>();
|
||||
List<ulong> byebyeRegions = new();
|
||||
|
||||
if(newRegionHandle == curRegionHandle) //??
|
||||
return byebyeRegions;
|
||||
@@ -4746,7 +4708,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public void closeAllChildAgents()
|
||||
{
|
||||
List<ulong> byebyeRegions = new List<ulong>();
|
||||
List<ulong> byebyeRegions = new();
|
||||
List<ulong> knownRegions = KnownRegionHandles;
|
||||
foreach (ulong handle in knownRegions)
|
||||
{
|
||||
@@ -4798,7 +4760,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
m_updateAgentReceivedAfterTransferEvent.Set();
|
||||
}
|
||||
|
||||
private static Vector3 marker = new Vector3(-1f, -1f, -1f);
|
||||
private static Vector3 marker = new(-1f, -1f, -1f);
|
||||
|
||||
/// <summary>
|
||||
/// This updates important decision making data about a child agent
|
||||
@@ -4821,7 +4783,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
int shiftx = ((int)rRegionX - (int)tRegionX) * (int)Constants.RegionSize;
|
||||
int shifty = ((int)rRegionY - (int)tRegionY) * (int)Constants.RegionSize;
|
||||
|
||||
Vector3 offset = new Vector3(shiftx, shifty, 0f);
|
||||
Vector3 offset = new(shiftx, shifty, 0f);
|
||||
|
||||
DrawDistance = cAgentData.Far;
|
||||
|
||||
@@ -4921,8 +4883,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
cAgent.MotionState = (byte)Animator.currentControlState;
|
||||
|
||||
if (Scene.AttachmentsModule != null)
|
||||
Scene.AttachmentsModule.CopyAttachments(this, cAgent);
|
||||
Scene.AttachmentsModule?.CopyAttachments(this, cAgent);
|
||||
|
||||
if(isCrossUpdate)
|
||||
{
|
||||
@@ -4986,10 +4947,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if (cAgent.ChildrenCapSeeds != null && cAgent.ChildrenCapSeeds.Count > 0)
|
||||
{
|
||||
if (Scene.CapsModule != null)
|
||||
{
|
||||
Scene.CapsModule.SetChildrenSeed(UUID, cAgent.ChildrenCapSeeds);
|
||||
}
|
||||
Scene.CapsModule?.SetChildrenSeed(UUID, cAgent.ChildrenCapSeeds);
|
||||
KnownRegions = cAgent.ChildrenCapSeeds;
|
||||
}
|
||||
|
||||
@@ -5014,8 +4972,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
*/
|
||||
|
||||
if (Scene.AttachmentsModule != null)
|
||||
Scene.AttachmentsModule.CopyAttachments(cAgent, this);
|
||||
Scene.AttachmentsModule?.CopyAttachments(cAgent, this);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -5028,7 +4985,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
foreach (ControllerData c in cAgent.Controllers)
|
||||
{
|
||||
ScriptControllers sc = new ScriptControllers()
|
||||
ScriptControllers sc = new()
|
||||
{
|
||||
objectID = c.ObjectID,
|
||||
itemID = c.ItemID,
|
||||
@@ -5106,8 +5063,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
// we got a unknown active group so get what groups thinks about us
|
||||
IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>();
|
||||
if (gm != null)
|
||||
gm.SendAgentGroupDataUpdate(ControllingClient);
|
||||
gm?.SendAgentGroupDataUpdate(ControllingClient);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5194,12 +5150,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
private void OutOfBoundsCall(Vector3 pos)
|
||||
{
|
||||
//bool flying = Flying;
|
||||
//RemoveFromPhysicalScene();
|
||||
|
||||
//AddToPhysicalScene(flying);
|
||||
if (ControllingClient != null)
|
||||
ControllingClient.SendAgentAlertMessage("Physics is having a problem with your avatar. You may not be able to move until you relog.", true);
|
||||
ControllingClient?.SendAgentAlertMessage("Physics is having a problem with your avatar. You may not be able to move until you relog.", true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -5263,7 +5214,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if(coldata.Count > 0)
|
||||
{
|
||||
uint killerObj = 0;
|
||||
SceneObjectPart part = null;
|
||||
SceneObjectPart part;
|
||||
float rvel; // relative velocity, negative on approch
|
||||
foreach (uint localid in coldata.Keys)
|
||||
{
|
||||
@@ -5340,8 +5291,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
|
||||
IBakedTextureModule bakedModule = m_scene.RequestModuleInterface<IBakedTextureModule>();
|
||||
if (bakedModule != null)
|
||||
bakedModule.UpdateMeshAvatar(m_uuid);
|
||||
bakedModule?.UpdateMeshAvatar(m_uuid);
|
||||
}
|
||||
|
||||
public int GetAttachmentsCount()
|
||||
@@ -5366,7 +5316,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// <returns>Returns an empty list if there were no attachments at the point.</returns>
|
||||
public List<SceneObjectGroup> GetAttachments(uint attachmentPoint)
|
||||
{
|
||||
List<SceneObjectGroup> attachments = new List<SceneObjectGroup>();
|
||||
List<SceneObjectGroup> attachments = new();
|
||||
|
||||
if (attachmentPoint >= 0)
|
||||
{
|
||||
@@ -5758,25 +5708,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
internal void Jump(float impulseZ)
|
||||
{
|
||||
if (PhysicsActor != null)
|
||||
{
|
||||
PhysicsActor.AvatarJump(impulseZ);
|
||||
}
|
||||
PhysicsActor?.AvatarJump(impulseZ);
|
||||
}
|
||||
|
||||
internal void PushForce(Vector3 impulse)
|
||||
{
|
||||
if (PhysicsActor != null)
|
||||
{
|
||||
PhysicsActor.AddForce(impulse, true);
|
||||
}
|
||||
PhysicsActor?.AddForce(impulse, true);
|
||||
}
|
||||
|
||||
private CameraData CameraDataCache;
|
||||
CameraData physActor_OnPhysicsRequestingCameraData()
|
||||
{
|
||||
if(CameraDataCache == null)
|
||||
CameraDataCache = new CameraData();
|
||||
CameraDataCache ??= new CameraData();
|
||||
CameraDataCache.MouseLook = m_mouseLook;
|
||||
CameraDataCache.CameraRotation = CameraRotation;
|
||||
CameraDataCache.CameraAtAxis = CameraAtAxis;
|
||||
@@ -5792,7 +5735,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
ControllingClient.SendTakeControls(controls, false, false);
|
||||
ControllingClient.SendTakeControls(controls, true, false);
|
||||
|
||||
ScriptControllers obj = new ScriptControllers()
|
||||
ScriptControllers obj = new()
|
||||
{
|
||||
ignoreControls = ScriptControlled.CONTROL_ZERO,
|
||||
eventControls = ScriptControlled.CONTROL_ZERO,
|
||||
@@ -5834,7 +5777,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
ControllingClient.SendTakeControls(controls, pass_on == 1 ? true : false, true);
|
||||
ControllingClient.SendTakeControls(controls, pass_on == 1, true);
|
||||
}
|
||||
|
||||
private void AddScriptToControlNotifications(OpenMetaverse.UUID Script_item_UUID, SceneObjectPart part, ref ScriptControllers obj)
|
||||
@@ -5895,10 +5838,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
else
|
||||
{
|
||||
SceneObjectPart part = m_scene.GetSceneObjectPart(objectID);
|
||||
if(part != null)
|
||||
{
|
||||
part.Inventory.RemoveScriptsPermissions(this, (int)permissions);
|
||||
}
|
||||
part?.Inventory.RemoveScriptsPermissions(this, (int)permissions);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5913,7 +5853,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
public void UnRegisterSeatControls(UUID obj)
|
||||
{
|
||||
List<UUID> takers = new List<UUID>();
|
||||
List<UUID> takers = new();
|
||||
|
||||
foreach (ScriptControllers c in scriptedcontrols.Values)
|
||||
{
|
||||
@@ -6138,7 +6078,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
// forcing telehubs on any tp that reachs this
|
||||
if ((m_teleportFlags & TeleHubTPFlags) != 0 ||
|
||||
(m_scene.TelehubAllowLandmarks ? false : ((m_teleportFlags & TeleportFlags.ViaLandmark) != 0 )))
|
||||
(!m_scene.TelehubAllowLandmarks && ((m_teleportFlags & TeleportFlags.ViaLandmark) != 0 )))
|
||||
{
|
||||
ILandObject land;
|
||||
Vector3 teleHubPosition = telehub.AbsolutePosition;
|
||||
@@ -6162,7 +6102,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
int index;
|
||||
int tries;
|
||||
bool selected = false;
|
||||
bool validhub = false;
|
||||
bool validhub;
|
||||
Vector3 spawnPosition;
|
||||
|
||||
Quaternion teleHubRotation = telehub.GroupRotation;
|
||||
@@ -6271,11 +6211,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
private bool CheckAndAdjustLandingPoint_OS(ref Vector3 pos, ref Vector3 lookat, ref bool positionChanged)
|
||||
{
|
||||
// Honor bans
|
||||
if (!m_scene.TestLandRestrictions(UUID, out string reason, ref pos.X, ref pos.Y))
|
||||
if (!m_scene.TestLandRestrictions(UUID, out string _, ref pos.X, ref pos.Y))
|
||||
return false;
|
||||
|
||||
SceneObjectGroup telehub = null;
|
||||
if (!m_scene.RegionInfo.RegionSettings.TelehubObject.IsZero() && (telehub = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject)) != null)
|
||||
SceneObjectGroup telehub;
|
||||
if (!m_scene.RegionInfo.RegionSettings.TelehubObject.IsZero() && (telehub = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject)) is not null)
|
||||
{
|
||||
if (!m_scene.RegionInfo.EstateSettings.AllowDirectTeleport)
|
||||
{
|
||||
@@ -6331,8 +6271,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
if (!m_scene.RegionInfo.EstateSettings.AllowDirectTeleport)
|
||||
{
|
||||
SceneObjectGroup telehub = null;
|
||||
if (!m_scene.RegionInfo.RegionSettings.TelehubObject.IsZero() && (telehub = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject)) != null)
|
||||
SceneObjectGroup telehub;
|
||||
if (!m_scene.RegionInfo.RegionSettings.TelehubObject.IsZero() && (telehub = m_scene.GetSceneObjectGroup(m_scene.RegionInfo.RegionSettings.TelehubObject)) is not null)
|
||||
{
|
||||
if(CheckAndAdjustTelehub(telehub, ref pos, ref positionChanged))
|
||||
return true;
|
||||
@@ -6340,11 +6280,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
|
||||
// Honor bans, actually we don't honour them
|
||||
if (!m_scene.TestLandRestrictions(UUID, out string reason, ref pos.X, ref pos.Y))
|
||||
if (!m_scene.TestLandRestrictions(UUID, out string _, ref pos.X, ref pos.Y))
|
||||
return false;
|
||||
|
||||
ILandObject land = m_scene.LandChannel.GetLandObject(pos.X, pos.Y);
|
||||
if (land != null)
|
||||
if (land is not null)
|
||||
{
|
||||
if (Scene.DebugTeleporting)
|
||||
TeleportFlagsDebug();
|
||||
@@ -6391,7 +6331,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
|
||||
private DetectedObject CreateDetObject(ScenePresence av)
|
||||
{
|
||||
DetectedObject detobj = new DetectedObject()
|
||||
DetectedObject detobj = new()
|
||||
{
|
||||
keyUUID = av.UUID,
|
||||
nameStr = av.ControllingClient.Name,
|
||||
@@ -6414,7 +6354,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
|
||||
private DetectedObject CreateDetObjectForGround()
|
||||
{
|
||||
DetectedObject detobj = new DetectedObject()
|
||||
DetectedObject detobj = new()
|
||||
{
|
||||
keyUUID = UUID.Zero,
|
||||
nameStr = "",
|
||||
@@ -6431,8 +6371,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
private ColliderArgs CreateColliderArgs(SceneObjectPart dest, List<uint> colliders)
|
||||
{
|
||||
ColliderArgs colliderArgs = new ColliderArgs();
|
||||
List<DetectedObject> colliding = new List<DetectedObject>();
|
||||
ColliderArgs colliderArgs = new();
|
||||
List<DetectedObject> colliding = new();
|
||||
foreach (uint localId in colliders)
|
||||
{
|
||||
if (localId == 0)
|
||||
@@ -6482,8 +6422,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
if ((dest.RootPart.ScriptEvents & ev) != 0)
|
||||
{
|
||||
ColliderArgs LandCollidingMessage = new ColliderArgs();
|
||||
List<DetectedObject> colliding = new List<DetectedObject>(){CreateDetObjectForGround()};
|
||||
ColliderArgs LandCollidingMessage = new();
|
||||
List<DetectedObject> colliding = new(){CreateDetObjectForGround()};
|
||||
LandCollidingMessage.Colliders = colliding;
|
||||
|
||||
notify(dest.RootPart.LocalId, LandCollidingMessage);
|
||||
@@ -6527,13 +6467,13 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
bool thisHitLand = false;
|
||||
bool startLand = false;
|
||||
|
||||
List<uint> thisHitColliders = new List<uint>(numberCollisions);
|
||||
List<uint> endedColliders = new List<uint>(m_lastColliders.Count);
|
||||
List<uint> startedColliders = new List<uint>(numberCollisions);
|
||||
List<uint> thisHitColliders = new(numberCollisions);
|
||||
List<uint> endedColliders = new(m_lastColliders.Count);
|
||||
List<uint> startedColliders = new(numberCollisions);
|
||||
|
||||
if(ParcelAllowThisAvatarSounds)
|
||||
{
|
||||
List<CollisionForSoundInfo> soundinfolist = new List<CollisionForSoundInfo>();
|
||||
List<CollisionForSoundInfo> soundinfolist = new();
|
||||
CollisionForSoundInfo soundinfo;
|
||||
ContactPoint curcontact;
|
||||
|
||||
@@ -6649,16 +6589,17 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
|
||||
m_log.InfoFormat("[SCENE PRESENCE]: TELEPORT ******************");
|
||||
|
||||
uint i = 0u;
|
||||
for (int x = 0; x <= 30 ; x++, i = 1u << x)
|
||||
uint i;
|
||||
for (int x = 0; x <= 30 ; x++)
|
||||
{
|
||||
i = 1u << x;
|
||||
|
||||
if((m_teleportFlags & (TeleportFlags)i) == (TeleportFlags)i)
|
||||
if((m_teleportFlags & (TeleportFlags)i) != 0)
|
||||
{
|
||||
if (HG == false)
|
||||
m_log.InfoFormat("[SCENE PRESENCE]: Teleport Flags include {0}", ((TeleportFlags) i).ToString());
|
||||
else
|
||||
m_log.InfoFormat("[SCENE PRESENCE]: HG Teleport Flags include {0}", ((TeleportFlags)i).ToString());
|
||||
}
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[SCENE PRESENCE]: TELEPORT ******************");
|
||||
@@ -6687,11 +6628,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
private void ParcelCrossCheck(UUID currentParcelID,UUID previusParcelID,
|
||||
bool currentParcelHide, bool previusParcelHide, bool oldhide, bool check)
|
||||
{
|
||||
List<ScenePresence> killsToSendto = new List<ScenePresence>();
|
||||
List<ScenePresence> killsToSendme = new List<ScenePresence>();
|
||||
List<ScenePresence> viewsToSendto = new List<ScenePresence>();
|
||||
List<ScenePresence> viewsToSendme = new List<ScenePresence>();
|
||||
List<ScenePresence> allpresences = null;
|
||||
List<ScenePresence> killsToSendto = new();
|
||||
List<ScenePresence> killsToSendme = new();
|
||||
List<ScenePresence> viewsToSendto = new();
|
||||
List<ScenePresence> viewsToSendme = new();
|
||||
List<ScenePresence> allpresences;
|
||||
|
||||
if (IsInTransit || IsChildAgent)
|
||||
return;
|
||||
@@ -6859,8 +6800,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
if (nearRegion)
|
||||
{
|
||||
if (Scene.AttachmentsModule != null)
|
||||
Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true);
|
||||
Scene.AttachmentsModule?.DeleteAttachmentsFromScene(this, true);
|
||||
|
||||
if (!ParcelHideThisAvatar || IsViewerUIGod)
|
||||
return;
|
||||
@@ -6896,8 +6836,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
p.SendKillTo(this);
|
||||
}
|
||||
|
||||
if (Scene.AttachmentsModule != null)
|
||||
Scene.AttachmentsModule.DeleteAttachmentsFromScene(this, true);
|
||||
Scene.AttachmentsModule?.DeleteAttachmentsFromScene(this, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6905,7 +6844,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
// kill with attachs root kills
|
||||
public void SendKillTo(ScenePresence p)
|
||||
{
|
||||
List<uint> ids = new List<uint>(m_attachments.Count + 1);
|
||||
List<uint> ids = new(m_attachments.Count + 1);
|
||||
foreach (SceneObjectGroup sog in m_attachments)
|
||||
{
|
||||
ids.Add(sog.RootPart.LocalId);
|
||||
@@ -6929,8 +6868,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
{
|
||||
SendAvatarDataToAgentNF(p);
|
||||
SendAppearanceToAgent(p);
|
||||
if (Animator != null)
|
||||
Animator.SendAnimPackToClient(p.ControllingClient);
|
||||
Animator?.SendAnimPackToClient(p.ControllingClient);
|
||||
SendAttachmentsToAgentNF(p);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user