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); } }
public InGameState() { STATE_NONE = new State.NoneState(this); STATE_SELECT_DWARF = new State.SelectDwarfState(this); STATE_BUILD_TUNNEL = new State.BuildTunnelState(this); }