If object is an attachment, make llGetVel() return the avatar's speed rather than the object's own zero speed.
As per http://opensimulator.org/mantis/view.php?id=5575bulletsim
parent
3e5b2d52ff
commit
0ee7a5ee81
|
@ -566,7 +566,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||||
/// <param name="silent"></param>
|
/// <param name="silent"></param>
|
||||||
protected void AttachToAgent(ScenePresence avatar, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent)
|
protected void AttachToAgent(ScenePresence avatar, SceneObjectGroup so, uint attachmentpoint, Vector3 attachOffset, bool silent)
|
||||||
{
|
{
|
||||||
|
|
||||||
m_log.DebugFormat("[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}", Name, avatar.Name,
|
m_log.DebugFormat("[ATTACHMENTS MODULE]: Adding attachment {0} to avatar {1} in pt {2} pos {3} {4}", Name, avatar.Name,
|
||||||
attachmentpoint, attachOffset, so.RootPart.AttachedPos);
|
attachmentpoint, attachOffset, so.RootPart.AttachedPos);
|
||||||
|
|
||||||
|
|
|
@ -2214,7 +2214,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
public LSL_Vector llGetVel()
|
public LSL_Vector llGetVel()
|
||||||
{
|
{
|
||||||
m_host.AddScriptLPS(1);
|
m_host.AddScriptLPS(1);
|
||||||
return new LSL_Vector(m_host.Velocity.X, m_host.Velocity.Y, m_host.Velocity.Z);
|
|
||||||
|
Vector3 vel;
|
||||||
|
|
||||||
|
if (m_host.IsAttachment)
|
||||||
|
{
|
||||||
|
ScenePresence avatar = m_host.ParentGroup.Scene.GetScenePresence(m_host.AttachedAvatar);
|
||||||
|
vel = avatar.Velocity;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vel = m_host.Velocity;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LSL_Vector(vel.X, vel.Y, vel.Z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LSL_Vector llGetAccel()
|
public LSL_Vector llGetAccel()
|
||||||
|
@ -10021,8 +10034,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
SceneObjectPart obj = World.GetSceneObjectPart(key);
|
SceneObjectPart obj = World.GetSceneObjectPart(key);
|
||||||
if (obj != null)
|
if (obj != null)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue