Esempio n. 1
0
 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);
                     }
                 }
             }
         }
     }
 }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }