/// Set system state to idle. return false if not possible public bool Idle() { generator = GetNode <Generator>("../Generator"); switch (state) { case MainSystemState.Broken: case MainSystemState.Idle: return(false); case MainSystemState.Active: lastState = state; state = MainSystemState.Idle; EmitSignal(nameof(StateChanged), state); generator.CalculateRemainingPower(); return(true); case MainSystemState.Disabled: if (idlePowerConsumption <= generator.remainingPower) { lastState = state; state = MainSystemState.Idle; EmitSignal(nameof(StateChanged), state); generator.CalculateRemainingPower(); return(true); } else { return(false); } } return(false); }
///Sets the system state to broken, returns false if not possible; public bool Broken() { generator = GetNode <Generator>("../Generator"); switch (state) { case MainSystemState.Active: case MainSystemState.Idle: case MainSystemState.Disabled: lastState = state; state = MainSystemState.Broken; EmitSignal(nameof(StateChanged), state); generator.CalculateRemainingPower(); return(true); case MainSystemState.Broken: return(false); } return(false); }
public void Repair() { state = MainSystemState.Disabled; EmitSignal(nameof(StateChanged), state); }
private void OnStateChanged(MainSystemState state) { statusLabel.Text = state.ToString(); }