public void restore_state(string key) { if (this.saved_state_dicts.ContainsKey(key)) { int duration = 0; SavedLampState state = saved_state_dicts[key]; foreach (string lamp_name in state.lamp_states.Keys) { if (!lamp_name.StartsWith("gi0")) { double time_remaining = (state.lamp_states[lamp_name].state.OutputDriveTime + state.lamp_states[lamp_name].time) - state.time_saved; // Disable the lamp if it has never been used or if there would have been // less than 1 second of drive time when the state was saved if ((state.lamp_states[lamp_name].time == 0 || time_remaining < 1.0) && state.lamp_states[lamp_name].state.OutputDriveTime != 0) { this.game.Lamps[lamp_name].Disable(); } else { // Otherwise, resume the lamp if (state.lamp_states[lamp_name].state.OutputDriveTime == 0) { duration = 0; } else { duration = (int)time_remaining; } if (state.lamp_states[lamp_name].state.Timeslots == 0) { this.game.Lamps[lamp_name].Disable(); } else { this.game.Lamps[lamp_name].Schedule(state.lamp_states[lamp_name].state.Timeslots, duration, state.lamp_states[lamp_name].state.WaitForFirstTimeSlot); } } } } } }
public void save_state(string key) { SavedLampState state = new SavedLampState(); state.time_saved = Time.GetTime(); foreach (Driver lamp in this.game.Lamps.Values) { state.lamp_states.Add(lamp.Name, new LampStateRecord(lamp.last_time_changed, lamp.State)); } if (this.saved_state_dicts.ContainsKey(key)) { this.saved_state_dicts[key] = state; } else { this.saved_state_dicts.Add(key, state); } }
public void save_state(string key) { SavedLampState state = new SavedLampState(); state.time_saved = Time.GetTime(); foreach (Driver lamp in this.game.Lamps.Values) { state.lamp_states.Add(lamp.Name, new LampStateRecord(lamp.last_time_changed, lamp.State)); } if (this.saved_state_dicts.ContainsKey(key)) { this.saved_state_dicts[key] = state; } else this.saved_state_dicts.Add(key, state); }