mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 18:25:33 +08:00
Add OnScriptMovingStartEvent and OnScriptMovingEndEvent to EventManager so that these can be triggered by future code (not yet implemented).
Also hooks up moving_start and moving_end script events, eliminating itemID on XEngine EventManager methods since this is completely unused. An adaptation of the patch in http://opensimulator.org/mantis/view.php?id=6515 Thanks Garmin Kawaguichi and Signpost Marv.
This commit is contained in:
@@ -549,6 +549,20 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// </remarks>
|
||||
public event ScriptControlEvent OnScriptControlEvent;
|
||||
|
||||
public delegate void ScriptMovingStartEvent(uint localID);
|
||||
|
||||
/// <summary>
|
||||
/// TODO: Should be triggered when a physics object starts moving.
|
||||
/// </summary>
|
||||
public event ScriptMovingStartEvent OnScriptMovingStartEvent;
|
||||
|
||||
public delegate void ScriptMovingEndEvent(uint localID);
|
||||
|
||||
/// <summary>
|
||||
/// TODO: Should be triggered when a physics object stops moving.
|
||||
/// </summary>
|
||||
public event ScriptMovingEndEvent OnScriptMovingEndEvent;
|
||||
|
||||
public delegate void ScriptAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 atpos);
|
||||
|
||||
/// <summary>
|
||||
@@ -2212,6 +2226,48 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerMovingStartEvent(uint localID)
|
||||
{
|
||||
ScriptMovingStartEvent handlerScriptMovingStartEvent = OnScriptMovingStartEvent;
|
||||
if (handlerScriptMovingStartEvent != null)
|
||||
{
|
||||
foreach (ScriptMovingStartEvent d in handlerScriptMovingStartEvent.GetInvocationList())
|
||||
{
|
||||
try
|
||||
{
|
||||
d(localID);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[EVENT MANAGER]: Delegate for TriggerMovingStartEvent failed - continuing. {0} {1}",
|
||||
e.Message, e.StackTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerMovingEndEvent(uint localID)
|
||||
{
|
||||
ScriptMovingEndEvent handlerScriptMovingEndEvent = OnScriptMovingEndEvent;
|
||||
if (handlerScriptMovingEndEvent != null)
|
||||
{
|
||||
foreach (ScriptMovingEndEvent d in handlerScriptMovingEndEvent.GetInvocationList())
|
||||
{
|
||||
try
|
||||
{
|
||||
d(localID);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[EVENT MANAGER]: Delegate for TriggerMovingEndEvent failed - continuing. {0} {1}",
|
||||
e.Message, e.StackTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerRequestChangeWaterHeight(float height)
|
||||
{
|
||||
if (height < 0)
|
||||
|
||||
Reference in New Issue
Block a user