why not also osGetLinkStandTarget

master
UbitUmarov 2020-01-25 15:29:59 +00:00
parent 5bb96cf18e
commit 868c05fdf6
4 changed files with 24 additions and 4 deletions

View File

@ -3443,8 +3443,9 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
sitOrientation = part.ParentGroup.RootPart.RotationOffset * sitOrientation;
ControllingClient.SendSitResponse( ControllingClient.SendSitResponse(
part.ParentGroup.UUID, offset, sitOrientation * part.ParentGroup.RootPart.RotationOffset, part.ParentGroup.UUID, offset, sitOrientation,
true, cameraAtOffset, cameraEyeOffset, forceMouselook); true, cameraAtOffset, cameraEyeOffset, forceMouselook);
m_requestedSitTargetUUID = part.UUID; m_requestedSitTargetUUID = part.UUID;
@ -3590,7 +3591,7 @@ namespace OpenSim.Region.Framework.Scenes
m_bodyRot = Orientation; m_bodyRot = Orientation;
m_pos = offset; m_pos = offset;
Orientation *= part.ParentGroup.RootPart.RotationOffset; Orientation = part.ParentGroup.RootPart.RotationOffset * Orientation;
ControllingClient.SendSitResponse( ControllingClient.SendSitResponse(
part.ParentGroup.UUID, offset, Orientation, true, cameraAtOffset, cameraEyeOffset, part.GetForceMouselook()); part.ParentGroup.UUID, offset, Orientation, true, cameraAtOffset, cameraEyeOffset, part.GetForceMouselook());

View File

@ -5738,5 +5738,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
return m_host.StandOffset; return m_host.StandOffset;
} }
public LSL_Vector osGetLinkStandTarget(LSL_Integer linkNumber)
{
if (linkNumber == ScriptBaseClass.LINK_THIS)
return m_host.StandOffset;
if (linkNumber < 0)
return Vector3.Zero;
if (linkNumber < 2)
return m_host.ParentGroup.RootPart.StandOffset;
SceneObjectPart target = m_host.ParentGroup.GetLinkNumPart(linkNumber);
if (target == null)
return Vector3.Zero;
return target.StandOffset;
}
} }
} }

View File

@ -566,5 +566,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
LSL_Float osGetLinkSitActiveRange(LSL_Integer linkNumber); LSL_Float osGetLinkSitActiveRange(LSL_Integer linkNumber);
void osSetStandTarget(vector v); void osSetStandTarget(vector v);
vector osGetStandTarget(); vector osGetStandTarget();
vector osGetLinkStandTarget(LSL_Integer linkNumber);
} }
} }

View File

@ -1448,9 +1448,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
} }
public vector osGetStandTarget() public vector osGetStandTarget()
{ {
return m_OSSL_Functions.osGetStandTarget(); return m_OSSL_Functions.osGetStandTarget();
} }
public vector osGetLinkStandTarget(LSL_Integer linkNumber)
{
return m_OSSL_Functions.osGetLinkStandTarget(linkNumber);
}
} }
} }