public override void RemoveScriptEvent(LuaEngine.EEntLuaEventTypes ev) { if (ScriptEvents.ContainsKey(ev)) { ScriptEvents.Remove(ev); } }
public override void AddScriptEvent(LuaEngine.EEntLuaEventTypes ev) { if (!IsEventSupported(ev)) { return; } ScriptEvents.Add(ev, new ScriptEvent(LuaEngine.MakeLuaEntityCallbackName(EntName, ev))); }
public override void AddScriptEvent(LuaEngine.EEntLuaEventTypes ev) { DiagManager.Instance.LogInfo(String.Format("GroundObject.AddScriptEvent({0}): Added script event to {1}!", ev.ToString(), EntName)); if (!IsEventSupported(ev)) { return; } ScriptEvents.Add(ev, new ScriptEvent(LuaEngine.MakeLuaEntityCallbackName(EntName, ev))); }
public override void RemoveScriptEvent(LuaEngine.EEntLuaEventTypes ev) { DiagManager.Instance.LogInfo(String.Format("GroundObject.RemoveScriptEvent({0}): Removed script event from {1}!", ev.ToString(), EntName)); if (ScriptEvents.ContainsKey(ev)) { ScriptEvents.Remove(ev); } }
public override IEnumerator <YieldInstruction> RunEvent(LuaEngine.EEntLuaEventTypes ev, params object[] parameters) { if (ScriptEvents.ContainsKey(ev)) { //Since ScriptEvent.Apply takes a single variadic table, we have to concatenate our current variadic argument table // with the extra parameter we want to pass. Otherwise "parameters" will be passed as a table instead of its // individual elements, and things will crash left and right. List <object> partopass = new List <object>(); partopass.Add(this); partopass.AddRange(parameters); yield return(CoroutineManager.Instance.StartCoroutine(ScriptEvents[ev].Apply(partopass.ToArray()))); } else { yield break; } }
/// <summary> /// Run a lua event by type /// </summary> /// <param name="ev"></param> public virtual IEnumerator <YieldInstruction> RunEvent(LuaEngine.EEntLuaEventTypes ev) { //Default does nothing yield return(CoroutineManager.Instance.StartCoroutine(RunEvent(ev, this))); }
public override bool IsEventSupported(LuaEngine.EEntLuaEventTypes ev) { return(ev == LuaEngine.EEntLuaEventTypes.Action || ev == LuaEngine.EEntLuaEventTypes.Think); }
/// <summary> /// Method to be implemented by child classes that make use of script events. /// This will remove the default lua callback specified from the entity if possible. /// If its incompatible, or if the callback is not present nothing will happen. /// </summary> /// <param name="ev"></param> public virtual void RemoveScriptEvent(LuaEngine.EEntLuaEventTypes ev) { //Default does nothing }
public override bool IsEventSupported(LuaEngine.EEntLuaEventTypes ev) { return(ev != LuaEngine.EEntLuaEventTypes.Invalid && ev != LuaEngine.EEntLuaEventTypes.Think); }
/// <summary> /// Returns the event with the same name as the string eventname. /// Or return null if the event can't be found. /// </summary> /// <param name="eventname"></param> /// <returns></returns> public virtual bool HasScriptEvent(LuaEngine.EEntLuaEventTypes ev) { return(false); }
public override bool IsEventSupported(LuaEngine.EEntLuaEventTypes ev) { return(ev == LuaEngine.EEntLuaEventTypes.EntSpawned); }
public override bool HasScriptEvent(LuaEngine.EEntLuaEventTypes ev) { return(ScriptEvents.ContainsKey(ev)); }
public SpawnScriptItem(LuaEngine.EEntLuaEventTypes eventType, GroundSpawner ent) { EventType = eventType; baseEnt = ent; }
/// <summary> /// /// </summary> /// <param name="ev"></param> /// <param name="parameters"></param> /// <returns></returns> public virtual IEnumerator <YieldInstruction> RunEvent(LuaEngine.EEntLuaEventTypes ev, params object[] parameters) { //Default does nothing yield break; }
public bool HasSpawnScriptEvent(LuaEngine.EEntLuaEventTypes ev) { return(EntityCallbacks.Contains(ev)); }
/// <summary> /// Add a script event to be assigned to the spawned entity. /// </summary> /// <param name="ev"></param> public virtual void AddSpawnedEntScriptEvent(LuaEngine.EEntLuaEventTypes ev) { EntityCallbacks.Add(ev); }
/// <summary> /// Removes a script event from the list of events to be assigned to the spawned entity /// </summary> /// <param name="ev"></param> public virtual void RemoveSpawnedEntScriptEvent(LuaEngine.EEntLuaEventTypes ev) { EntityCallbacks.Remove(ev); }
/// <summary> /// Used to check if an entity supports a lua event of the given kind. /// </summary> /// <param name="ev"></param> /// <returns></returns> public virtual bool IsEventSupported(LuaEngine.EEntLuaEventTypes ev) { return(false); }
public EntScriptItem(LuaEngine.EEntLuaEventTypes eventType, GroundEntity ent) { EventType = eventType; baseEnt = ent; }