Mantis#1439. Thank you kindly, Melanie for a patch that
plumbs in the events for on_rez.0.6.0-stable
parent
67dee6410d
commit
d635b526e5
|
@ -96,9 +96,12 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public event OnPermissionErrorDelegate OnPermissionError;
|
public event OnPermissionErrorDelegate OnPermissionError;
|
||||||
|
|
||||||
public delegate void NewRezScript(uint localID, LLUUID itemID, string script);
|
public delegate void NewRezScript(uint localID, LLUUID itemID, string script);
|
||||||
|
public delegate void RezEvent(uint localID, LLUUID itemID, int param);
|
||||||
|
|
||||||
public event NewRezScript OnRezScript;
|
public event NewRezScript OnRezScript;
|
||||||
|
|
||||||
|
public event RezEvent OnRezEvent;
|
||||||
|
|
||||||
public delegate void RemoveScript(uint localID, LLUUID itemID);
|
public delegate void RemoveScript(uint localID, LLUUID itemID);
|
||||||
|
|
||||||
public event RemoveScript OnRemoveScript;
|
public event RemoveScript OnRemoveScript;
|
||||||
|
@ -319,6 +322,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
private ObjectDeGrabDelegate handlerObjectDeGrab = null; //OnObjectDeGrab;
|
private ObjectDeGrabDelegate handlerObjectDeGrab = null; //OnObjectDeGrab;
|
||||||
private ScriptResetDelegate handlerScriptReset = null; // OnScriptReset
|
private ScriptResetDelegate handlerScriptReset = null; // OnScriptReset
|
||||||
private NewRezScript handlerRezScript = null; //OnRezScript;
|
private NewRezScript handlerRezScript = null; //OnRezScript;
|
||||||
|
private RezEvent handlerOnRezEvent = null; //OnRezEvent;
|
||||||
private RemoveScript handlerRemoveScript = null; //OnRemoveScript;
|
private RemoveScript handlerRemoveScript = null; //OnRemoveScript;
|
||||||
private SceneGroupMoved handlerSceneGroupMove = null; //OnSceneGroupMove;
|
private SceneGroupMoved handlerSceneGroupMove = null; //OnSceneGroupMove;
|
||||||
private SceneGroupGrabed handlerSceneGroupGrab = null; //OnSceneGroupGrab;
|
private SceneGroupGrabed handlerSceneGroupGrab = null; //OnSceneGroupGrab;
|
||||||
|
@ -513,6 +517,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void TriggerOnRezEvent(uint localID, LLUUID itemID, int param)
|
||||||
|
{
|
||||||
|
handlerOnRezEvent = OnRezEvent;
|
||||||
|
if (handlerOnRezEvent != null)
|
||||||
|
{
|
||||||
|
handlerOnRezEvent(localID, itemID, param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void TriggerRemoveScript(uint localID, LLUUID itemID)
|
public void TriggerRemoveScript(uint localID, LLUUID itemID)
|
||||||
{
|
{
|
||||||
handlerRemoveScript = OnRemoveScript;
|
handlerRemoveScript = OnRemoveScript;
|
||||||
|
|
|
@ -1673,7 +1673,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
group.UpdateGroupRotation(rot);
|
group.UpdateGroupRotation(rot);
|
||||||
group.ApplyPhysics(m_physicalPrim);
|
group.ApplyPhysics(m_physicalPrim);
|
||||||
group.Velocity = vel;
|
group.Velocity = vel;
|
||||||
group.StartScripts();
|
group.StartScripts(param);
|
||||||
rootPart.ScheduleFullUpdate();
|
rootPart.ScheduleFullUpdate();
|
||||||
return rootPart.ParentGroup;
|
return rootPart.ParentGroup;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,21 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start the scripts contained in all the prims in this group.
|
||||||
|
/// </summary>
|
||||||
|
public void StartScripts(int param)
|
||||||
|
{
|
||||||
|
// Don't start scripts if they're turned off in the region!
|
||||||
|
if (!((m_scene.RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts))
|
||||||
|
{
|
||||||
|
foreach (SceneObjectPart part in m_parts.Values)
|
||||||
|
{
|
||||||
|
part.StartScripts(param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void StopScripts()
|
public void StopScripts()
|
||||||
{
|
{
|
||||||
lock (m_parts)
|
lock (m_parts)
|
||||||
|
|
|
@ -152,6 +152,24 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start all the scripts contained in this prim's inventory
|
||||||
|
/// </summary>
|
||||||
|
public void StartScripts(int param)
|
||||||
|
{
|
||||||
|
lock (m_taskInventory)
|
||||||
|
{
|
||||||
|
foreach (TaskInventoryItem item in m_taskInventory.Values)
|
||||||
|
{
|
||||||
|
// XXX more hardcoding badness. Should be an enum in TaskInventoryItem
|
||||||
|
if (10 == item.Type)
|
||||||
|
{
|
||||||
|
StartScript(item, param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stop all the scripts in this prim.
|
/// Stop all the scripts in this prim.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -175,6 +193,12 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item"></param>
|
/// <param name="item"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
public void StartScript(TaskInventoryItem item, int param)
|
||||||
|
{
|
||||||
|
StartScript(item);
|
||||||
|
m_parentGroup.Scene.EventManager.TriggerOnRezEvent(LocalId, item.ItemID, param);
|
||||||
|
}
|
||||||
|
|
||||||
public void StartScript(TaskInventoryItem item)
|
public void StartScript(TaskInventoryItem item)
|
||||||
{
|
{
|
||||||
// m_log.InfoFormat(
|
// m_log.InfoFormat(
|
||||||
|
|
Loading…
Reference in New Issue