diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 12 |
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 a94cd46..6e5436a 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -2002,6 +2002,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2002 | 2002 | ||
2003 | //KF: Do NOT use this next line if using ODE physics engine. This need a switch based on .ini Phys Engine type | 2003 | //KF: Do NOT use this next line if using ODE physics engine. This need a switch based on .ini Phys Engine type |
2004 | // part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition; | 2004 | // part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition; |
2005 | |||
2006 | // So, after thinking about this for a bit, the issue with the part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition line | ||
2007 | // is it isn't compatible with vehicles because it causes the vehicle body to have to be broken down and rebuilt | ||
2008 | // It's perfectly okay when the object is not an active physical body though. | ||
2009 | // So, part.ParentGroup.ResetChildPrimPhysicsPositions(); does the thing that Kitto is warning against | ||
2010 | // but only if the object is not physial and active. This is important for rotating doors. | ||
2011 | // without the absoluteposition = absoluteposition happening, the doors do not move in the physics | ||
2012 | // scene | ||
2013 | if (part.PhysActor != null && !part.PhysActor.IsPhysical) | ||
2014 | { | ||
2015 | part.ParentGroup.ResetChildPrimPhysicsPositions(); | ||
2016 | } | ||
2005 | } | 2017 | } |
2006 | 2018 | ||
2007 | /// <summary> | 2019 | /// <summary> |