Adds llRotTarget and the events at_rot_target and not_at_rot_target.

Signed-off-by: Melanie <melanie@t-data.com>
This commit is contained in:
Revolution
2010-01-10 20:20:00 -06:00
committed by Melanie
parent 2bf49cc1bb
commit a0859754c0
6 changed files with 196 additions and 21 deletions

View File

@@ -2108,15 +2108,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public LSL_Integer llRotTarget(LSL_Rotation rot, double error)
{
m_host.AddScriptLPS(1);
NotImplemented("llRotTarget");
return 0;
m_host.AddScriptLPS(1);
return m_host.registerRotTargetWaypoint(new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s), (float)error);
}
public void llRotTargetRemove(int number)
{
m_host.AddScriptLPS(1);
NotImplemented("llRotTargetRemove");
m_host.AddScriptLPS(1);
m_host.unregisterRotTargetWaypoint(number);
}
public void llMoveToTarget(LSL_Vector target, double tau)

View File

@@ -61,7 +61,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
land_collision = 2048,
land_collision_end = 4096,
land_collision_start = 8192,
at_target = 16384,
at_target = 16384,
at_rot_target = 16777216,
listen = 32768,
money = 65536,
moving_end = 131072,
@@ -202,8 +203,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return;
}
m_eventFlagsMap.Add("attach", scriptEvents.attach);
// m_eventFlagsMap.Add("at_rot_target",(long)scriptEvents.at_rot_target);
m_eventFlagsMap.Add("attach", scriptEvents.attach);
m_eventFlagsMap.Add("at_rot_target", scriptEvents.at_rot_target);
m_eventFlagsMap.Add("at_target", scriptEvents.at_target);
// m_eventFlagsMap.Add("changed",(long)scriptEvents.changed);
m_eventFlagsMap.Add("collision", scriptEvents.collision);

View File

@@ -58,7 +58,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine
myScriptEngine.World.EventManager.OnObjectDeGrab += touch_end;
myScriptEngine.World.EventManager.OnScriptChangedEvent += changed;
myScriptEngine.World.EventManager.OnScriptAtTargetEvent += at_target;
myScriptEngine.World.EventManager.OnScriptNotAtTargetEvent += not_at_target;
myScriptEngine.World.EventManager.OnScriptNotAtTargetEvent += not_at_target;
myScriptEngine.World.EventManager.OnScriptAtRotTargetEvent += at_rot_target;
myScriptEngine.World.EventManager.OnScriptNotAtRotTargetEvent += not_at_rot_target;
myScriptEngine.World.EventManager.OnScriptControlEvent += control;
myScriptEngine.World.EventManager.OnScriptColliderStart += collision_start;
myScriptEngine.World.EventManager.OnScriptColliding += collision;
@@ -388,16 +390,20 @@ namespace OpenSim.Region.ScriptEngine.XEngine
myScriptEngine.PostObjectEvent(localID, new EventParams(
"not_at_target",new object[0],
new DetectParams[0]));
}
public void at_rot_target(uint localID, UUID itemID)
{
myScriptEngine.PostObjectEvent(localID, new EventParams(
"at_rot_target",new object[0],
}
public void at_rot_target(uint localID, uint handle, Quaternion targetrot,
Quaternion atrot)
{
myScriptEngine.PostObjectEvent(localID, new EventParams(
"at_rot_target", new object[] {
new LSL_Types.LSLInteger(handle),
new LSL_Types.Quaternion(targetrot.X,targetrot.Y,targetrot.Z,targetrot.W),
new LSL_Types.Quaternion(atrot.X,atrot.Y,atrot.Z,atrot.W) },
new DetectParams[0]));
}
public void not_at_rot_target(uint localID, UUID itemID)
public void not_at_rot_target(uint localID)
{
myScriptEngine.PostObjectEvent(localID, new EventParams(
"not_at_rot_target",new object[0],