Пример #1
0
        public void request_new_state(string newState)
        {
            GD.Print("Request new state: ", newState);
            if (!CURRENT_STATE.Equals(newState))
            {
                state?.teardown_state();
                switch (newState)
                {
                case constant.StateNames.NONE:
                    state = STATE_NONE;
                    break;

                case constant.StateNames.SELECT_DWARFS:
                    state = STATE_SELECT_DWARF;
                    break;

                case constant.StateNames.BUILD_TUNNEL:
                    state = STATE_BUILD_TUNNEL;
                    break;

                default:
                    GD.PrintErr("Unknown state! ", newState);
                    state?.setup_state();
                    return;
                }
                state.setup_state();
                CURRENT_STATE = newState;
                EmitSignal(nameof(state_changed), CURRENT_STATE);
            }
        }
Пример #2
0
 public InGameState()
 {
     STATE_NONE         = new State.NoneState(this);
     STATE_SELECT_DWARF = new State.SelectDwarfState(this);
     STATE_BUILD_TUNNEL = new State.BuildTunnelState(this);
 }