Plumb the rest of the serverside AO
parent
339904bc52
commit
87a4abac50
|
@ -6037,5 +6037,10 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
Overrides.SetOverride(animState, animID);
|
||||
Animator.SendAnimPack();
|
||||
}
|
||||
|
||||
public UUID GetAnimationOverride(string animState)
|
||||
{
|
||||
return Overrides.GetOverriddenAnimation(animState);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13545,6 +13545,102 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
|
||||
presence.SetAnimationOverride(state, animID);
|
||||
}
|
||||
|
||||
public void llResetAnimationOverride(LSL_String animState)
|
||||
{
|
||||
ScenePresence presence = World.GetScenePresence(m_item.PermsGranter);
|
||||
if (presence == null)
|
||||
return;
|
||||
|
||||
if (m_item.PermsGranter == UUID.Zero)
|
||||
{
|
||||
llShout(ScriptBaseClass.DEBUG_CHANNEL, "No permission to override animations");
|
||||
return;
|
||||
}
|
||||
|
||||
if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_OVERRIDE_ANIMATIONS) == 0)
|
||||
{
|
||||
llShout(ScriptBaseClass.DEBUG_CHANNEL, "No permission to override animations");
|
||||
return;
|
||||
}
|
||||
|
||||
if (animState == "ALL")
|
||||
{
|
||||
presence.SetAnimationOverride("ALL", UUID.Zero);
|
||||
return;
|
||||
}
|
||||
|
||||
string state = String.Empty;
|
||||
|
||||
foreach (KeyValuePair<string, string> kvp in MovementAnimationsForLSL)
|
||||
{
|
||||
if (kvp.Value.ToLower() == ((string)animState).ToLower())
|
||||
{
|
||||
state = kvp.Key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (state == String.Empty)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
presence.SetAnimationOverride(state, UUID.Zero);
|
||||
}
|
||||
|
||||
public LSL_String llGetAnimationOverride(LSL_String animState)
|
||||
{
|
||||
ScenePresence presence = World.GetScenePresence(m_item.PermsGranter);
|
||||
if (presence == null)
|
||||
return String.Empty;
|
||||
|
||||
if (m_item.PermsGranter == UUID.Zero)
|
||||
{
|
||||
llShout(ScriptBaseClass.DEBUG_CHANNEL, "No permission to override animations");
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
if ((m_item.PermsMask & (ScriptBaseClass.PERMISSION_OVERRIDE_ANIMATIONS | ScriptBaseClass.PERMISSION_TRIGGER_ANIMATION)) == 0)
|
||||
{
|
||||
llShout(ScriptBaseClass.DEBUG_CHANNEL, "No permission to override animations");
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
string state = String.Empty;
|
||||
|
||||
foreach (KeyValuePair<string, string> kvp in MovementAnimationsForLSL)
|
||||
{
|
||||
if (kvp.Value.ToLower() == ((string)animState).ToLower())
|
||||
{
|
||||
state = kvp.Key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (state == String.Empty)
|
||||
{
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
UUID animID = presence.GetAnimationOverride(state);
|
||||
if (animID == UUID.Zero)
|
||||
return animState;
|
||||
|
||||
foreach (KeyValuePair<string, UUID> kvp in DefaultAvatarAnimations.AnimsUUID)
|
||||
{
|
||||
if (kvp.Value == animID)
|
||||
return MovementAnimationsForLSL[kvp.Key];
|
||||
}
|
||||
|
||||
foreach (TaskInventoryItem item in m_host.Inventory.GetInventoryItems())
|
||||
{
|
||||
if (item.AssetID == animID)
|
||||
return item.Name;
|
||||
}
|
||||
|
||||
return String.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public class NotecardCache
|
||||
|
|
|
@ -435,5 +435,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
|||
LSL_List GetPrimitiveParamsEx(LSL_Key prim, LSL_List rules);
|
||||
LSL_List llGetPhysicsMaterial();
|
||||
void llSetAnimationOverride(LSL_String animState, LSL_String anim);
|
||||
void llResetAnimationOverride(LSL_String anim_state);
|
||||
LSL_String llGetAnimationOverride(LSL_String anim_state);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2019,5 +2019,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
|||
{
|
||||
m_LSL_Functions.llSetAnimationOverride(animState, anim);
|
||||
}
|
||||
|
||||
public void llResetAnimationOverride(LSL_String anim_state)
|
||||
{
|
||||
m_LSL_Functions.llResetAnimationOverride(anim_state);
|
||||
}
|
||||
|
||||
public LSL_String llGetAnimationOverride(LSL_String anim_state)
|
||||
{
|
||||
return m_LSL_Functions.llGetAnimationOverride(anim_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue