fix (http://opensimulator.org/mantis/view.php?id=5965) llGetObjectMass was bad for sitted avatars not checking for the null physicsactor
parent
6480b72eda
commit
723015e4f0
|
@ -9980,7 +9980,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
// return total object mass
|
// return total object mass
|
||||||
SceneObjectGroup obj = World.GetGroupByPrim(World.Entities[key].LocalId);
|
SceneObjectGroup obj = World.GetGroupByPrim(World.Entities[key].LocalId);
|
||||||
if (obj != null)
|
if (obj != null)
|
||||||
return (double)obj.GetMass();
|
return obj.GetMass();
|
||||||
|
|
||||||
// the object is null so the key is for an avatar
|
// the object is null so the key is for an avatar
|
||||||
ScenePresence avatar = World.GetScenePresence(key);
|
ScenePresence avatar = World.GetScenePresence(key);
|
||||||
|
@ -9990,7 +9990,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
// child agents have a mass of 1.0
|
// child agents have a mass of 1.0
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return (double)avatar.PhysicsActor.Mass;
|
return avatar.GetMass();
|
||||||
}
|
}
|
||||||
catch (KeyNotFoundException)
|
catch (KeyNotFoundException)
|
||||||
{
|
{
|
||||||
|
@ -11829,6 +11829,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
|
|
||||||
return contacts[0];
|
return contacts[0];
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
// not done:
|
||||||
|
private ContactResult[] testRay2NonPhysicalPhantom(Vector3 rayStart, Vector3 raydir, float raylenght)
|
||||||
|
{
|
||||||
|
ContactResult[] contacts = null;
|
||||||
|
World.ForEachSOG(delegate(SceneObjectGroup group)
|
||||||
|
{
|
||||||
|
if (m_host.ParentGroup == group)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (group.IsAttachment)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(group.RootPart.PhysActor != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
contacts = group.RayCastGroupPartsOBBNonPhysicalPhantom(rayStart, raydir, raylenght);
|
||||||
|
});
|
||||||
|
return contacts;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
public LSL_List llCastRay(LSL_Vector start, LSL_Vector end, LSL_List options)
|
public LSL_List llCastRay(LSL_Vector start, LSL_Vector end, LSL_List options)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue