public void RegisterDelayedAction(IGameAction action, float delayInSeconds, ActionCompletedCallback callback = null) { delayedActions.Add(action); delayedActionsTime.Add(delayInSeconds); RegisterCallback(action, callback); }
protected void RegisterCallback(IGameAction action, ActionCompletedCallback callback) { if (callback != null && !callbacks.ContainsKey(action)) { callbacks.Add(action, callback); action.OnGameActionFinished += OnGameActionFinished; } }
public void FireAction(IGameAction action, IGameObject target, ActionCompletedCallback callback = null, float delay = 0f) { action.Parent = Parent; action.Target = target; if (delay > 0f) { actionManager.RegisterDelayedAction(action, delay, callback); } else { actionManager.RegisterAction(action, callback); } }
public void RegisterAction(IGameAction action, ActionCompletedCallback callback = null) { addNextUpdate.Add(action); RegisterCallback(action, callback); }