private void CreateStates() { states = new Dictionary <string, TreeState>(); TreeState inactive = new TreeStateInactive(); TreeState active = new TreeStateActive(); TreeState eatingMinigameWrangle = new TreeStateEatingMinigameWrangle(); TreeState eatingMinigameMash = new TreeStateEatingMinigameMash(); TreeState eating = new TreeStateEating(); states.Add("Inactive", inactive); states.Add("Active", active); states.Add("EatingMinigameWrangle", eatingMinigameWrangle); states.Add("EatingMinigameMash", eatingMinigameMash); states.Add("Eating", eating); foreach (TreeState state in states.Values) { state.Tree = this; } currentState = (Active) ? active : inactive; currentState.Enter(); }
protected virtual void CreateStates() { states = new Dictionary<string, TreeState>(); TreeState inactive = new TreeStateInactive(); TreeState inactiveDead = new TreeStateInactiveDead(); TreeState active = new TreeStateActive(); TreeState eatingMinigameWrangle = new TreeStateEatingMinigameWrangle(); TreeState eatingMinigameMash = new TreeStateEatingMinigameMash(); TreeState eatingMinigameMashInstant = new TreeStateEatingMinigameMashInstant(); TreeState eating = new TreeStateEating(); // Axe man minigame states TreeState axeManMinigameDead = new TreeStateAxeManMinigameDead(); TreeState axeManMinigameWaitForChop = new TreeStateAxeManMinigameWaitForChop(); TreeState axeManMinigameGroan = new TreeStateAxeManMinigameGroan(); TreeState axeManMinigamePanToAxe = new TreeStateAxeManMinigamePanToAxe(); TreeState axeManMinigameWrangleAxe = new TreeStateAxeManMinigameWrangleAxe(); TreeState axeManMinigameGrabAxe = new TreeStateAxeManMinigameGrabAxe(); TreeState axeManMinigameRemoveAxe = new TreeStateAxeManMinigameRemoveAxe(); TreeState axeManMinigameRaiseAxe = new TreeStateAxeManMinigameRaiseAxe(); TreeState axeManMinigameDropAxe = new TreeStateAxeManMinigameDropAxe(); TreeState axeManMinigameLowerToAxeMan = new TreeStateAxeManMinigameLowerToAxeMan(); TreeState axeManMinigameRaiseAxeMan = new TreeStateAxeManMinigameRaiseAxeMan(); TreeState axeManMinigameWrangleAxeMan = new TreeStateAxeManMinigameWrangleAxeMan(); TreeState axeManMinigameMash = new TreeStateAxeManMinigameMash(); TreeState axeManMinigameEatingFirstHalf = new TreeStateAxeManMinigameEatingFirstHalf(); TreeState axeManMinigameEatingLastWords = new TreeStateAxeManMinigameEatingLastWords(); TreeState axeManMinigameEatingLastHalf = new TreeStateAxeManMinigameEatingLastHalf(); states.Add("Inactive", inactive); states.Add("InactiveDead", inactiveDead); states.Add("Active", active); states.Add("EatingMinigameWrangle", eatingMinigameWrangle); states.Add("EatingMinigameMash", eatingMinigameMash); states.Add("EatingMinigameMashInstant", eatingMinigameMashInstant); states.Add("Eating", eating); // Axe man minigame state states.Add("AxeManMinigameDead", axeManMinigameDead); states.Add("AxeManMinigameWaitForChop", axeManMinigameWaitForChop); states.Add("AxeManMinigameGroan", axeManMinigameGroan); states.Add("AxeManMinigamePanToAxe", axeManMinigamePanToAxe); states.Add("AxeManMinigameWrangleAxe", axeManMinigameWrangleAxe); states.Add("AxeManMinigameGrabAxe", axeManMinigameGrabAxe); states.Add("AxeManMinigameRemoveAxe", axeManMinigameRemoveAxe); states.Add("AxeManMinigameRaiseAxe", axeManMinigameRaiseAxe); states.Add("AxeManMinigameDropAxe", axeManMinigameDropAxe); states.Add("AxeManMinigameLowerToAxeMan", axeManMinigameLowerToAxeMan); states.Add("AxeManMinigameRaiseAxeMan", axeManMinigameRaiseAxeMan); states.Add("AxeManMinigameWrangleAxeMan", axeManMinigameWrangleAxeMan); states.Add("AxeManMinigameMash", axeManMinigameMash); states.Add("AxeManMinigameEatingFirstHalf", axeManMinigameEatingFirstHalf); states.Add("AxeManMinigameEatingLastWords", axeManMinigameEatingLastWords); states.Add("AxeManMinigameEatingLastHalf", axeManMinigameEatingLastHalf); foreach (TreeState state in states.Values) state.Tree = this; currentState = (Active) ? states["Active"] : states["Inactive"]; if (Active) MessageCenter.Instance.Broadcast(new CameraChangeFollowedMessage(transform, Vector3.zero)); currentState.Enter(null); }