public TreeStateMachine( TreeBehaviour owner, TreeStateWriter inTree, HealthWriter health, FlammableBehaviour flammableInterface, FlammableWriter flammable ) { tree = inTree; var healthyState = new TreeHealthyState(this, flammable, health); var burningState = new TreeBurningState(this, flammable, health); var burntState = new TreeBurntState(this, owner, flammable, flammableInterface); var stumpState = new TreeStumpState(this, owner, flammable); var stateList = new Dictionary <TreeFSMState, IFsmState>(); stateList.Add(TreeFSMState.HEALTHY, healthyState); stateList.Add(TreeFSMState.BURNING, burningState); stateList.Add(TreeFSMState.BURNT, burntState); stateList.Add(TreeFSMState.STUMP, stumpState); SetStates(stateList); var allowedTransitions = new Dictionary <TreeFSMState, IList <TreeFSMState> >(); allowedTransitions.Add(TreeFSMState.HEALTHY, new List <TreeFSMState>() { TreeFSMState.BURNING, TreeFSMState.STUMP }); allowedTransitions.Add(TreeFSMState.BURNING, new List <TreeFSMState>() { TreeFSMState.HEALTHY, TreeFSMState.BURNT }); allowedTransitions.Add(TreeFSMState.BURNT, new List <TreeFSMState>() { TreeFSMState.HEALTHY }); allowedTransitions.Add(TreeFSMState.STUMP, new List <TreeFSMState>() { TreeFSMState.HEALTHY }); SetTransitions(allowedTransitions); }
public TreeStumpState(TreeStateMachine owner, TreeBehaviour inParentBehaviour, FlammableWriter inFlammable) : base(owner) { parentBehaviour = inParentBehaviour; flammable = inFlammable; }
public TreeBurntState(TreeStateMachine owner, TreeBehaviour inParentBehaviour, FlammableWriter inFlammable, FlammableBehaviour inflammableInterface) : base(owner) { parentBehaviour = inParentBehaviour; flammable = inFlammable; flammableInterface = inflammableInterface; }
public TreeBurningState(TreeStateMachine owner, FlammableWriter inFlammable, HealthWriter inHealth) : base(owner) { flammable = inFlammable; health = inHealth; }