diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 25 |
2 files changed, 24 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs index 3185aad..9c1b87b 100644 --- a/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/UbitOdePlugin/ODECharacter.cs | |||
@@ -117,6 +117,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
117 | // Default, Collide with Other Geometries, spaces, bodies and characters. | 117 | // Default, Collide with Other Geometries, spaces, bodies and characters. |
118 | private CollisionCategories m_collisionFlags = (CollisionCategories.Character | 118 | private CollisionCategories m_collisionFlags = (CollisionCategories.Character |
119 | | CollisionCategories.Geom | 119 | | CollisionCategories.Geom |
120 | | CollisionCategories.VolumeDtc | ||
120 | ); | 121 | ); |
121 | // we do land collisions not ode | CollisionCategories.Land); | 122 | // we do land collisions not ode | CollisionCategories.Land); |
122 | public IntPtr Body = IntPtr.Zero; | 123 | public IntPtr Body = IntPtr.Zero; |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 5b5e23e..8e73eb1 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -9980,7 +9980,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9980 | // return total object mass | 9980 | // return total object mass |
9981 | SceneObjectGroup obj = World.GetGroupByPrim(World.Entities[key].LocalId); | 9981 | SceneObjectGroup obj = World.GetGroupByPrim(World.Entities[key].LocalId); |
9982 | if (obj != null) | 9982 | if (obj != null) |
9983 | return (double)obj.GetMass(); | 9983 | return obj.GetMass(); |
9984 | 9984 | ||
9985 | // the object is null so the key is for an avatar | 9985 | // the object is null so the key is for an avatar |
9986 | ScenePresence avatar = World.GetScenePresence(key); | 9986 | ScenePresence avatar = World.GetScenePresence(key); |
@@ -9990,7 +9990,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9990 | // child agents have a mass of 1.0 | 9990 | // child agents have a mass of 1.0 |
9991 | return 1; | 9991 | return 1; |
9992 | else | 9992 | else |
9993 | return (double)avatar.PhysicsActor.Mass; | 9993 | return avatar.GetMass(); |
9994 | } | 9994 | } |
9995 | catch (KeyNotFoundException) | 9995 | catch (KeyNotFoundException) |
9996 | { | 9996 | { |
@@ -11829,6 +11829,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
11829 | 11829 | ||
11830 | return contacts[0]; | 11830 | return contacts[0]; |
11831 | } | 11831 | } |
11832 | /* | ||
11833 | // not done: | ||
11834 | private ContactResult[] testRay2NonPhysicalPhantom(Vector3 rayStart, Vector3 raydir, float raylenght) | ||
11835 | { | ||
11836 | ContactResult[] contacts = null; | ||
11837 | World.ForEachSOG(delegate(SceneObjectGroup group) | ||
11838 | { | ||
11839 | if (m_host.ParentGroup == group) | ||
11840 | return; | ||
11841 | |||
11842 | if (group.IsAttachment) | ||
11843 | return; | ||
11844 | |||
11845 | if(group.RootPart.PhysActor != null) | ||
11846 | return; | ||
11847 | |||
11848 | contacts = group.RayCastGroupPartsOBBNonPhysicalPhantom(rayStart, raydir, raylenght); | ||
11849 | }); | ||
11850 | return contacts; | ||
11851 | } | ||
11852 | */ | ||
11832 | 11853 | ||
11833 | public LSL_List llCastRay(LSL_Vector start, LSL_Vector end, LSL_List options) | 11854 | public LSL_List llCastRay(LSL_Vector start, LSL_Vector end, LSL_List options) |
11834 | { | 11855 | { |