Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
commit
785671e242
|
@ -100,7 +100,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
private bool m_hackSentFly = false;
|
private bool m_hackSentFly = false;
|
||||||
private int m_requestedUpdateFrequency = 0;
|
private int m_requestedUpdateFrequency = 0;
|
||||||
private Vector3 m_taintPosition;
|
private Vector3 m_taintPosition;
|
||||||
|
internal bool m_avatarplanted = false;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Hold set forces so we can process them outside physics calculations. This prevents race conditions if we set force
|
/// Hold set forces so we can process them outside physics calculations. This prevents race conditions if we set force
|
||||||
/// while calculatios are going on
|
/// while calculatios are going on
|
||||||
|
@ -413,7 +413,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
m_iscollidingObj = value;
|
m_iscollidingObj = value;
|
||||||
if (value)
|
if (value && !m_avatarplanted)
|
||||||
m_pidControllerActive = false;
|
m_pidControllerActive = false;
|
||||||
else
|
else
|
||||||
m_pidControllerActive = true;
|
m_pidControllerActive = true;
|
||||||
|
|
|
@ -501,6 +501,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
public int physics_logging_interval = 0;
|
public int physics_logging_interval = 0;
|
||||||
public bool physics_logging_append_existing_logfile = false;
|
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 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f);
|
||||||
public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f);
|
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);
|
avMovementDivisorWalk = physicsconfig.GetFloat("av_movement_divisor_walk", 1.3f);
|
||||||
avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f);
|
avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f);
|
||||||
avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f);
|
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);
|
IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false);
|
||||||
|
|
||||||
contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80);
|
contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80);
|
||||||
|
@ -664,6 +669,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f);
|
MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f);
|
||||||
m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false);
|
m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (Environment.OSVersion.Platform == PlatformID.Unix)
|
if (Environment.OSVersion.Platform == PlatformID.Unix)
|
||||||
{
|
{
|
||||||
avPIDD = physicsconfig.GetFloat("av_pid_derivative_linux", 2200.0f);
|
avPIDD = physicsconfig.GetFloat("av_pid_derivative_linux", 2200.0f);
|
||||||
|
@ -1309,6 +1316,10 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect))
|
if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect))
|
||||||
skipThisContact = true; // No collision on volume detect prims
|
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))
|
if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect))
|
||||||
skipThisContact = true; // No collision on volume detect prims
|
skipThisContact = true; // No collision on volume detect prims
|
||||||
|
|
||||||
|
@ -1972,6 +1983,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
|
|
||||||
newAv.Flying = isFlying;
|
newAv.Flying = isFlying;
|
||||||
newAv.MinimumGroundFlightOffset = minimumGroundFlightOffset;
|
newAv.MinimumGroundFlightOffset = minimumGroundFlightOffset;
|
||||||
|
newAv.m_avatarplanted = avplanted;
|
||||||
|
|
||||||
return newAv;
|
return newAv;
|
||||||
}
|
}
|
||||||
|
@ -1987,6 +1999,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
|
|
||||||
internal void AddCharacter(OdeCharacter chr)
|
internal void AddCharacter(OdeCharacter chr)
|
||||||
{
|
{
|
||||||
|
chr.m_avatarplanted = avplanted;
|
||||||
if (!_characters.Contains(chr))
|
if (!_characters.Contains(chr))
|
||||||
{
|
{
|
||||||
_characters.Add(chr);
|
_characters.Add(chr);
|
||||||
|
|
|
@ -844,6 +844,15 @@
|
||||||
; When the avatar flies, it will be moved up by this amount off the ground (in meters)
|
; When the avatar flies, it will be moved up by this amount off the ground (in meters)
|
||||||
minimum_ground_flight_offset = 3.0
|
minimum_ground_flight_offset = 3.0
|
||||||
|
|
||||||
|
; Plant avatar. This reduces the effect of physical contacts with the avatar.
|
||||||
|
; If you have a group of unruly and rude visitors that bump each other, turn this on to make that less attractive.
|
||||||
|
; The avatar still allows a small movement based on the PID settings above. Stronger PID settings AND this active
|
||||||
|
; will lock the avatar in place
|
||||||
|
av_planted = false
|
||||||
|
|
||||||
|
; No Avatar Avatar Collissions. This causes avatar to be able to walk through each other as if they're ghosts but still interact with the environment
|
||||||
|
av_av_collisions_off = false
|
||||||
|
|
||||||
; ##
|
; ##
|
||||||
; ## Object options
|
; ## Object options
|
||||||
; ##
|
; ##
|
||||||
|
|
Loading…
Reference in New Issue