private string GetActionPath(AutoAction lowestAction) { string actionPath = ""; AutoAction currentAction = lowestAction; while (currentAction != null) { actionPath = currentAction.name + ": " + actionPath; currentAction = currentAction.parent; } return(actionPath); }
public void AddAction(AutoAction action) { if (currentAction == null) { currentAction = action; return; } AutoAction lastAction = currentAction; while (currentAction.next != null) { lastAction = lastAction.next; } lastAction.next = action; }
public AutoAction Build(AutoAction parent) { autoActions[0].parent = parent; for (int i = 0; i < autoActions.Count - 1; i++) { AutoAction currentAction = autoActions[i]; while (currentAction.next != null) { currentAction = currentAction.next; } AutoAction nextAction = autoActions[i + 1]; nextAction.parent = parent; currentAction.next = nextAction; } return(autoActions[0]); }
public Action GetNextAction(float timeDelta) { if (!TimeForNextAction(timeDelta) || currentAction == null) { return(() => { }); } while (!currentAction.invokeable) { currentAction = currentAction.next; } return(() => { Debug.Log(GetActionPath(currentAction)); currentAction.Invoke(); currentAction = currentAction.next; }); }
private void SetupExitAction() { if (exitAction == null) { exitAction = strategy.GetExitAction(); if (exitAction != null) { exitAction.parent = this; exitAction.next = next; } else { exitAction = next; } next = this; } }
public EncapsulatingRoadSelector(AutoAction middle) : base("EncapsulatingRoadSelector") { var componentChain = MainToolstripNavigator.Instance.GetComponentChain(new List <string> { "Roads", "RoadsSmall", "Basic Road" }); var builder = new AutoActionBuilder(); foreach (var component in componentChain) { builder.Add(new ClickUiComponent(component)); } next = builder .Add(middle) .Add(new ClickUiComponent(componentChain[0])) .Build(this); }
public AutoActionBuilder Add(AutoAction action) { autoActions.Add(action); return(this); }