public BarracksStateMachine(BarracksInfo.Writer inBarracksInfo, StockpileDepository.Writer inStockpile, Health.Writer inHealth, FlammableBehaviour inFlammableBehaviour, NPCSpawnerBehaviour npcSpawnerBehaviour) { barracksInfo = inBarracksInfo; stockpile = inStockpile; health = inHealth; flammableBehaviour = inFlammableBehaviour; var stateList = new Dictionary <BarracksState, IFsmState> { { BarracksState.UNDER_CONSTRUCTION, new BarracksUnderConstructionState(this, inHealth, npcSpawnerBehaviour) }, { BarracksState.CONSTRUCTION_FINISHED, new BarracksConstructionFinishedState(this, inHealth, npcSpawnerBehaviour) } }; SetStates(stateList); var allowedTransitions = new Dictionary <BarracksState, IList <BarracksState> >() { { BarracksState.UNDER_CONSTRUCTION, new List <BarracksState> { BarracksState.CONSTRUCTION_FINISHED } }, { BarracksState.CONSTRUCTION_FINISHED, new List <BarracksState> { BarracksState.UNDER_CONSTRUCTION } } }; SetTransitions(allowedTransitions); }
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); }
private void Awake() { transformSender = gameObject.GetComponentIfUnassigned(transformSender); flammableInterface = gameObject.GetComponentIfUnassigned(flammableInterface); }
private void Awake() { flammableInterface = gameObject.GetComponentIfUnassigned(flammableInterface); }
private void Awake() { flammableBehaviour = gameObject.GetComponentIfUnassigned(flammableBehaviour); }
private void Awake() { harvestableInterface = GetComponent <HarvestableBehaviour>(); flammableInterface = GetComponent <FlammableBehaviour>(); }
public TreeBurntState(TreeStateMachine owner, TreeBehaviour inParentBehaviour, Flammable.Writer inFlammable, FlammableBehaviour inFlammableInterface) : base(owner) { parentBehaviour = inParentBehaviour; flammable = inFlammable; flammableInterface = inFlammableInterface; }
private void Awake() { flammableInterface = gameObject.GetComponentIfUnassigned(flammableInterface); _harvestable = gameObject.GetComponent <HarvestableBehaviour>(); }