public void AddListener(ICompilationListener listener) { _listenerList.Add(listener); if (_latestResult != null) { UpdateListener(_latestResult, listener); } }
private static void UpdateListener(CompileResult result, ICompilationListener listener) { var file = result.GetFile(listener.FilePath); if (file != null) { listener.Update(file); } }
/// <summary> /// Start the scripts contained in all the prims in this group. /// </summary> public void CreateScriptInstances(int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener) { // Don't start scripts if they're turned off in the region! if (!m_scene.RegionInfo.RegionSettings.DisableScripts) { m_childParts.ForEachPart((SceneObjectPart part) => { part.Inventory.CreateScriptInstances(startParam, startFlags, engine, stateSource, listener); }); } }
/// <summary> /// Start the scripts contained in all the prims in this group. /// </summary> public void CreateScriptInstances(int?startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener) { // Don't start scripts if they're turned off in the region! if (!m_scene.RegionInfo.RegionSettings.DisableScripts) { m_childParts.ForEachPart((SceneObjectPart part) => { part.Inventory.CreateScriptInstances(startParam, startFlags, engine, stateSource, listener); }); } }
/// <summary> /// Start/Restart a script which is in this prim's inventory. /// </summary> /// <param name="itemId"> /// A <see cref="UUID"/> /// </param> public void CreateScriptInstance(UUID itemId, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener compilationListener, bool isReload) { lock (m_items) { if (m_items.ContainsKey(itemId)) { CreateScriptInstance(m_items[itemId], startParam, startFlags, engine, stateSource, compilationListener, isReload); } else { m_log.ErrorFormat( "[PRIM INVENTORY]: " + "Couldn't start script with ID {0} since it couldn't be found for prim {1}, {2}", itemId, m_part.Name, m_part.UUID); } } }
/// <summary> /// Start a script which is in this prim's inventory. /// </summary> /// <param name="itemId"> /// A <see cref="UUID"/> /// </param> public void CreateScriptInstance(UUID itemId, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener compilationListener) { this.CreateScriptInstance(itemId, startParam, startFlags, engine, stateSource, compilationListener, false); }
/// <summary> /// Start or reload a script which is in this prim's inventory. /// </summary> /// <param name="item"></param> /// <returns></returns> public void CreateScriptInstance(TaskInventoryItem item, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener compilationListener, bool isReload) { if (!m_part.ParentGroup.Scene.Permissions.CanRunScript(item.ItemID, m_part.ParentGroup.UUID, item.OwnerID)) return; if (!m_part.ParentGroup.Scene.RegionInfo.RegionSettings.DisableScripts) { if (isReload) { m_part.ParentGroup.Scene.EventManager.TriggerReloadScript( m_part.LocalId, item.ItemID, String.Empty, startParam, startFlags, engine, stateSource, compilationListener); } else { m_part.ParentGroup.Scene.EventManager.TriggerRezScript( m_part.LocalId, item, String.Empty, startParam, startFlags, engine, stateSource, compilationListener); } m_part.ParentGroup.AddActiveScriptCount(1); m_part.ScheduleFullUpdate(PrimUpdateFlags.PrimFlags); } }
/// <summary> /// Start all the scripts contained in this prim's inventory /// </summary> public void CreateScriptInstances(int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener) { lock (m_items) { foreach (TaskInventoryItem item in Items.Values) { if ((int)InventoryType.LSL == item.InvType) { m_part.AddFlag(PrimFlags.Scripted); CreateScriptInstance(item, startParam, startFlags, engine, stateSource, listener); } } } }
void EventManager_OnReloadScript(uint localID, OpenMetaverse.UUID itemID, string script, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener) { //try to find the prim associated with the localid SceneObjectPart part = _scene.SceneGraph.GetPrimByLocalId(localID); if (part == null) { _log.ErrorFormat("[Phlox]: Unable to reload script {0}. Prim {1} no longer exists", itemID, localID); return; } ILandObject parcel = _scene.LandChannel.GetLandObject(part.GroupPosition.X, part.GroupPosition.Y); bool startDisabled = !ScriptsCanRun(parcel, part); _scriptLoader.PostLoadUnloadRequest(new LoadUnloadRequest { RequestType = LoadUnloadRequest.LUType.Reload, PostOnRez = (startFlags & ScriptStartFlags.PostOnRez) != 0, ChangedRegionStart = (startFlags & ScriptStartFlags.ChangedRegionStart) != 0, StartParam = startParam, StateSource = (OpenSim.Region.Framework.ScriptStateSource)stateSource, Listener = listener, StartLocalDisabled = startDisabled, StartGlobalDisabled = (startFlags & ScriptStartFlags.StartGloballyDisabled) != 0, CallbackParams = new LoadUnloadRequest.UnloadCallbackParams { Prim = part, ItemId = itemID, ReplaceArgs = null, // signals that it is not used AllowedDrop = false, // not used FireEvents = false, // not used } }); }
public void RemoveListener(ICompilationListener listener) { _listenerList.Remove(listener); }
public void TriggerReloadScript(uint localID, UUID itemID, string script, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener compilationListener) { ReloadScript handlerReloadScript = OnReloadScript; if (handlerReloadScript != null) { handlerReloadScript(localID, itemID, script, startParam, startFlags, engine, stateSource, compilationListener); } }
public void TriggerRezScript(uint localID, TaskInventoryItem item, string script, int? startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener compilationListener) { handlerRezScript = OnRezScript; if (handlerRezScript != null) { handlerRezScript(localID, item, script, startParam, startFlags, engine, stateSource, compilationListener); } }
public void TriggerCompileScript(string scriptSource, ICompilationListener compListener) { CompileScript compileScriptHandler = OnCompileScript; if (compileScriptHandler != null) { compileScriptHandler(scriptSource, compListener); } }
void EventManager_OnReloadScript(uint localID, OpenMetaverse.UUID itemID, string script, int?startParam, ScriptStartFlags startFlags, string engine, int stateSource, ICompilationListener listener) { //try to find the prim associated with the localid SceneObjectPart part = _scene.SceneGraph.GetPrimByLocalId(localID); if (part == null) { _log.ErrorFormat("[Phlox]: Unable to reload script {0}. Prim {1} no longer exists", itemID, localID); return; } ILandObject parcel = _scene.LandChannel.GetLandObject(part.GroupPosition.X, part.GroupPosition.Y); bool startDisabled = !ScriptsCanRun(parcel, part); _scriptLoader.PostLoadUnloadRequest(new LoadUnloadRequest { RequestType = LoadUnloadRequest.LUType.Reload, PostOnRez = (startFlags & ScriptStartFlags.PostOnRez) != 0, ChangedRegionStart = (startFlags & ScriptStartFlags.ChangedRegionStart) != 0, StartParam = startParam, StateSource = (OpenSim.Region.Framework.ScriptStateSource)stateSource, Listener = listener, StartLocalDisabled = startDisabled, StartGlobalDisabled = (startFlags & ScriptStartFlags.StartGloballyDisabled) != 0, CallbackParams = new LoadUnloadRequest.UnloadCallbackParams { Prim = part, ItemId = itemID, ReplaceArgs = null, // signals that it is not used AllowedDrop = false, // not used FireEvents = false, // not used } }); }
public CompilationListenerAdaptor(ICompilationListener compilationListener) { _delegate = compilationListener; }