aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorTeravus Ovares (Dan Olivares)2009-11-26 01:34:46 -0500
committerTeravus Ovares (Dan Olivares)2009-11-26 01:34:46 -0500
commita5f2803c79b8d3a25124bef5f68afd57b5feba96 (patch)
treecc690545060002324c2a86ac597ae7b69cba0e9f /OpenSim/Region
parentMerge branch 'master' of ssh://MyConnection/var/git/opensim (diff)
downloadopensim-SC-a5f2803c79b8d3a25124bef5f68afd57b5feba96.zip
opensim-SC-a5f2803c79b8d3a25124bef5f68afd57b5feba96.tar.gz
opensim-SC-a5f2803c79b8d3a25124bef5f68afd57b5feba96.tar.bz2
opensim-SC-a5f2803c79b8d3a25124bef5f68afd57b5feba96.tar.xz
* Re-enable the AbsolutePosition = AbsolutePosition in the LSL_Api in the SetRot method if the object is not active physical. This is important for scripted rotating doors. without AbsolutePosition = AbsolutePosition, the door won't rotate. It's also important that we do not use AbsolutePosition = AbsolutePosition if the object is active physical because that would cause a complete rebuild of the object which would break vehicles. This is the best of both worlds right now. Doors as child prim should work again so long as you don't check the Physical box.
* Thanks talentraspel * Thanks NixNerd * Thanks KittoFlora * Thanks lockd
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs12
1 files changed, 12 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 9c62775..fbbbfdc 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -1987,6 +1987,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1987 1987
1988//KF: Do NOT use this next line if using ODE physics engine. This need a switch based on .ini Phys Engine type 1988//KF: Do NOT use this next line if using ODE physics engine. This need a switch based on .ini Phys Engine type
1989// part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition; 1989// part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition;
1990
1991 // So, after thinking about this for a bit, the issue with the part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition line
1992 // is it isn't compatible with vehicles because it causes the vehicle body to have to be broken down and rebuilt
1993 // It's perfectly okay when the object is not an active physical body though.
1994 // So, part.ParentGroup.ResetChildPrimPhysicsPositions(); does the thing that Kitto is warning against
1995 // but only if the object is not physial and active. This is important for rotating doors.
1996 // without the absoluteposition = absoluteposition happening, the doors do not move in the physics
1997 // scene
1998 if (part.PhysActor != null && !part.PhysActor.IsPhysical)
1999 {
2000 part.ParentGroup.ResetChildPrimPhysicsPositions();
2001 }
1990 } 2002 }
1991 2003
1992 /// <summary> 2004 /// <summary>