mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 01:06:30 +08:00
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
This commit is contained in:
@@ -100,7 +100,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
private bool m_hackSentFly = false;
|
||||
private int m_requestedUpdateFrequency = 0;
|
||||
private Vector3 m_taintPosition;
|
||||
|
||||
internal bool m_avatarplanted = false;
|
||||
/// <summary>
|
||||
/// Hold set forces so we can process them outside physics calculations. This prevents race conditions if we set force
|
||||
/// while calculatios are going on
|
||||
@@ -413,7 +413,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
set
|
||||
{
|
||||
m_iscollidingObj = value;
|
||||
if (value)
|
||||
if (value && !m_avatarplanted)
|
||||
m_pidControllerActive = false;
|
||||
else
|
||||
m_pidControllerActive = true;
|
||||
|
||||
@@ -501,6 +501,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
public int physics_logging_interval = 0;
|
||||
public bool physics_logging_append_existing_logfile = false;
|
||||
|
||||
private bool avplanted = false;
|
||||
private bool av_av_collisions_off = false;
|
||||
|
||||
public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f);
|
||||
public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f);
|
||||
@@ -644,6 +646,9 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
avMovementDivisorWalk = physicsconfig.GetFloat("av_movement_divisor_walk", 1.3f);
|
||||
avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f);
|
||||
avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f);
|
||||
avplanted = physicsconfig.GetBoolean("av_planted", false);
|
||||
av_av_collisions_off = physicsconfig.GetBoolean("av_av_collisions_off", false);
|
||||
|
||||
IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false);
|
||||
|
||||
contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80);
|
||||
@@ -663,6 +668,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f);
|
||||
MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f);
|
||||
m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false);
|
||||
|
||||
|
||||
|
||||
if (Environment.OSVersion.Platform == PlatformID.Unix)
|
||||
{
|
||||
@@ -1309,6 +1316,10 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect))
|
||||
skipThisContact = true; // No collision on volume detect prims
|
||||
|
||||
if (av_av_collisions_off)
|
||||
if ((p1 is OdeCharacter) && (p2 is OdeCharacter))
|
||||
skipThisContact = true;
|
||||
|
||||
if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect))
|
||||
skipThisContact = true; // No collision on volume detect prims
|
||||
|
||||
@@ -1972,7 +1983,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
|
||||
newAv.Flying = isFlying;
|
||||
newAv.MinimumGroundFlightOffset = minimumGroundFlightOffset;
|
||||
|
||||
newAv.m_avatarplanted = avplanted;
|
||||
|
||||
return newAv;
|
||||
}
|
||||
|
||||
@@ -1987,6 +1999,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
|
||||
internal void AddCharacter(OdeCharacter chr)
|
||||
{
|
||||
chr.m_avatarplanted = avplanted;
|
||||
if (!_characters.Contains(chr))
|
||||
{
|
||||
_characters.Add(chr);
|
||||
|
||||
Reference in New Issue
Block a user