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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 private void Awake()
 {
     transformSender    = gameObject.GetComponentIfUnassigned(transformSender);
     flammableInterface = gameObject.GetComponentIfUnassigned(flammableInterface);
 }
Exemplo n.º 4
0
 private void Awake()
 {
     flammableInterface = gameObject.GetComponentIfUnassigned(flammableInterface);
 }
Exemplo n.º 5
0
 private void Awake()
 {
     flammableBehaviour = gameObject.GetComponentIfUnassigned(flammableBehaviour);
 }
Exemplo n.º 6
0
 private void Awake()
 {
     harvestableInterface = GetComponent <HarvestableBehaviour>();
     flammableInterface   = GetComponent <FlammableBehaviour>();
 }
Exemplo n.º 7
0
 public TreeBurntState(TreeStateMachine owner, TreeBehaviour inParentBehaviour, Flammable.Writer inFlammable, FlammableBehaviour inFlammableInterface) : base(owner)
 {
     parentBehaviour    = inParentBehaviour;
     flammable          = inFlammable;
     flammableInterface = inFlammableInterface;
 }
Exemplo n.º 8
0
 private void Awake()
 {
     flammableInterface = gameObject.GetComponentIfUnassigned(flammableInterface);
     _harvestable       = gameObject.GetComponent <HarvestableBehaviour>();
 }