mirror of
https://github.com/opensim/opensim.git
synced 2026-05-17 12:15:33 +08:00
* Implements a bunch of stuff in NPCModule
This commit is contained in:
@@ -1978,30 +1978,30 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
|
||||
}
|
||||
|
||||
private LSL_Rotation GetPartRot( SceneObjectPart part )
|
||||
{
|
||||
Quaternion q;
|
||||
if (part.LinkNum == 0 || part.LinkNum == 1) // unlinked or root prim
|
||||
{
|
||||
if (part.ParentGroup.RootPart.AttachmentPoint != 0)
|
||||
{
|
||||
ScenePresence avatar = World.GetScenePresence(part.AttachedAvatar);
|
||||
if (avatar != null)
|
||||
if ((avatar.AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) != 0)
|
||||
q = avatar.CameraRotation; // Mouselook
|
||||
else
|
||||
q = avatar.Rotation; // Currently infrequently updated so may be inaccurate
|
||||
else
|
||||
q = part.ParentGroup.GroupRotation; // Likely never get here but just in case
|
||||
}
|
||||
else
|
||||
q = part.ParentGroup.GroupRotation; // just the group rotation
|
||||
return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
|
||||
}
|
||||
q = part.GetWorldRotation();
|
||||
return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
|
||||
}
|
||||
|
||||
private LSL_Rotation GetPartRot( SceneObjectPart part )
|
||||
{
|
||||
Quaternion q;
|
||||
if (part.LinkNum == 0 || part.LinkNum == 1) // unlinked or root prim
|
||||
{
|
||||
if (part.ParentGroup.RootPart.AttachmentPoint != 0)
|
||||
{
|
||||
ScenePresence avatar = World.GetScenePresence(part.AttachedAvatar);
|
||||
if (avatar != null)
|
||||
if ((avatar.AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) != 0)
|
||||
q = avatar.CameraRotation; // Mouselook
|
||||
else
|
||||
q = avatar.Rotation; // Currently infrequently updated so may be inaccurate
|
||||
else
|
||||
q = part.ParentGroup.GroupRotation; // Likely never get here but just in case
|
||||
}
|
||||
else
|
||||
q = part.ParentGroup.GroupRotation; // just the group rotation
|
||||
return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
|
||||
}
|
||||
q = part.GetWorldRotation();
|
||||
return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
|
||||
}
|
||||
|
||||
public LSL_Rotation llGetLocalRot()
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
|
||||
Reference in New Issue
Block a user