Add a CHANGED_POSITION event so scripts don't have to run expensive loops to check for position changes

avinationmerge
Tom 2010-08-07 06:28:04 -07:00
parent f9f776e407
commit 4f80d75bf3
3 changed files with 5 additions and 1 deletions

View File

@ -476,6 +476,7 @@ namespace OpenSim.Region.Framework.Scenes
part.IgnoreUndoUpdate = false; part.IgnoreUndoUpdate = false;
part.StoreUndoState(UndoType.STATE_GROUP_POSITION); part.StoreUndoState(UndoType.STATE_GROUP_POSITION);
part.GroupPosition = val; part.GroupPosition = val;
part.TriggerScriptChangedEvent(Changed.POSITION);
} }
foreach (ScenePresence av in m_linkedAvatars) foreach (ScenePresence av in m_linkedAvatars)

View File

@ -60,7 +60,8 @@ namespace OpenSim.Region.Framework.Scenes
TELEPORT = 512, TELEPORT = 512,
REGION_RESTART = 1024, REGION_RESTART = 1024,
MEDIA = 2048, MEDIA = 2048,
ANIMATION = 16384 ANIMATION = 16384,
POSITION = 32768
} }
// I don't really know where to put this except here. // I don't really know where to put this except here.
@ -730,6 +731,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
} }
TriggerScriptChangedEvent(Changed.POSITION);
} }
} }

View File

@ -279,6 +279,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public const int CHANGED_REGION_START = 1024; //LL Changed the constant from CHANGED_REGION_RESTART public const int CHANGED_REGION_START = 1024; //LL Changed the constant from CHANGED_REGION_RESTART
public const int CHANGED_MEDIA = 2048; public const int CHANGED_MEDIA = 2048;
public const int CHANGED_ANIMATION = 16384; public const int CHANGED_ANIMATION = 16384;
public const int CHANGED_POSITION = 32768;
public const int TYPE_INVALID = 0; public const int TYPE_INVALID = 0;
public const int TYPE_INTEGER = 1; public const int TYPE_INTEGER = 1;
public const int TYPE_FLOAT = 2; public const int TYPE_FLOAT = 2;