Ejemplo n.º 1
0
 public Dialog_SensorSettings(ISensorSettingsProvider sensor)
 {
     this.sensor             = sensor;
     settings                = sensor.Settings.Clone();
     originalSettings        = settings.Clone();
     absorbInputAroundWindow = false;
     doCloseX                = true;
     doCloseButton           = true;
     draggable               = true;
 }
Ejemplo n.º 2
0
 public override void PostClose()
 {
     base.PostClose();
     // assign modified fields to all selected sensors
     foreach (var obj in Find.Selector.SelectedObjects.Union(new[] { sensor }))
     {
         if (obj is ISensorSettingsProvider s)
         {
             var selectedSettingsCopy = s.Settings.Clone();
             if (SensorSettings.AssignModifiedFields(originalSettings, settings, selectedSettingsCopy))
             {
                 s.OnSettingsChanged(selectedSettingsCopy);
             }
         }
     }
 }
 public override void ExposeData()
 {
     base.ExposeData();
     Scribe_Deep.Look(ref slice, "slice");
     Scribe_Collections.Look(ref trackedPawns, false, "trackedPawns", LookMode.Reference);
     Scribe_Values.Look(ref lastTriggeredTick, "lastTriggered");
     Scribe_Deep.Look(ref settings, "settings");
     Scribe_Deep.Look(ref pendingSettings, "pendingSettings");
     if (Scribe.mode == LoadSaveMode.PostLoadInit)
     {
         if (trackedPawns == null)
         {
             trackedPawns = new List <Pawn>();
         }
         trackedPawns.RemoveAll(p => p == null);
         if (settings == null)
         {
             settings = new SensorSettings();
         }
     }
 }
 public void OnSettingsChanged(SensorSettings s)
 {
     pendingSettings = s;
     this.UpdateSwitchDesignation();
 }
 public void DoSwitch()
 {
     settings        = pendingSettings?.Clone() ?? new SensorSettings();
     pendingSettings = null;
 }