mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 00:46:02 +08:00
POS physics: removed "stickiness" from avatars so they can slide along surfaces instead of sticking to them.
This commit is contained in:
@@ -179,7 +179,15 @@ namespace OpenSim.Region.Physics.POSPlugin
|
||||
|
||||
bool forcedZ = false;
|
||||
character.Position.X = character.Position.X + (character._target_velocity.X * timeStep);
|
||||
if (check_all_prims(character))
|
||||
{
|
||||
character.Position.X = oldposX;
|
||||
}
|
||||
character.Position.Y = character.Position.Y + (character._target_velocity.Y * timeStep);
|
||||
if (check_all_prims(character))
|
||||
{
|
||||
character.Position.Y = oldposY;
|
||||
}
|
||||
float terrainheight = _heightMap[(int)character.Position.Y * 256 + (int)character.Position.X];
|
||||
if (character.Position.Z + (character._target_velocity.Z * timeStep) < terrainheight + 2)
|
||||
{
|
||||
@@ -201,16 +209,6 @@ namespace OpenSim.Region.Physics.POSPlugin
|
||||
if (check_all_prims(character))
|
||||
{
|
||||
character.Position.Z = oldposZ + 0.4f; // try harder
|
||||
if (check_all_prims(character))
|
||||
{
|
||||
character.Position.X = oldposX;
|
||||
character.Position.Y = oldposY;
|
||||
character.Position.Z = oldposZ;
|
||||
}
|
||||
else
|
||||
{
|
||||
forcedZ = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user