public Alarm GetAlarm(string alarmTitle) { Alarm alarm = null; switch (AlarmType) { case AlarmType.KerbalAlarmClock: var kac_alarm = KACUtils.GetAlarm(alarmTitle); if (kac_alarm != null) { alarm = new Alarm(kac_alarm.Name, kac_alarm.Notes, kac_alarm.AlarmTime, kac_alarm.Remaining, id: kac_alarm.ID); } break; case AlarmType.AlarmClockApp: var aca_alarm = ACAUtils.GetAlarm(alarmTitle); //Log("Alarm.GetAlarm " + aca_alarm.Id); if (aca_alarm != null && aca_alarm is AlarmTypeRaw) { alarm = new Alarm(aca_alarm.title, aca_alarm.description, aca_alarm.ut, (aca_alarm as AlarmTypeRaw).timeEntry, id: aca_alarm.Id.ToString()); //Log("Alarm.GetAlarm " + alarm.ID); } break; } return(alarm); }
public void AlarmPrependedToQueue(Alarm alarm) { if (alarm == null) { return; } int alarmsMoved = 0; switch (AlarmType) { case AlarmType.KerbalAlarmClock: { var alarms = KACUtils.GetPlanningActiveAlarms(); foreach (var a in alarms) { a.AlarmTime += alarm.Time; alarmsMoved++; } break; } case AlarmType.AlarmClockApp: { var alarms = ACAUtils.GetPlanningActiveAlarms(); foreach (var a in alarms) { //Log(String.Format("Bef - title:{0}, UT:{1:F0}, timeEntry:{2:F0}", a.title, a.ut, a.timeEntry)); a.ut += alarm.Time; a.timeEntry = a.ut - Utils.UT(); // += alarm.Times a.OnScenarioUpdate(); a.UIInputPanelUpdate(); alarmsMoved++; //Log(String.Format("Aft - title:{0}, UT:{1:F0}, timeEntry:{2:F0}", a.title, a.ut, a.timeEntry)); } break; } default: break; } Messages.Add(Localizer.Format("#KVASS_alarm_created", alarm.Title), 0); if (alarmsMoved == 1) { Messages.Add(Localizer.Format("#KVASS_alarm_created_other", alarmsMoved), 1); } else if (alarmsMoved > 1) { Messages.Add(Localizer.Format("#KVASS_alarm_created_others", alarmsMoved), 1); } }
public void AlarmAppendedToQueue(ref Alarm alarm) { if (alarm == null) { return; } switch (AlarmType) { case AlarmType.KerbalAlarmClock: { var alarms = KACUtils.GetSortedPlanningActiveAlarms(); if (alarms.Any()) { double busy_UT_end = alarms.Last().AlarmTime; double busyTime = Math.Round(busy_UT_end - Utils.UT()); alarm.UT += busyTime; Messages.Add(Localizer.Format("#KVASS_alarm_appended", alarm.Title), 0); } else { Messages.Add(Localizer.Format("#KVASS_alarm_created", alarm.Title), 0); } break; } case AlarmType.AlarmClockApp: { var alarms = ACAUtils.GetSortedPlanningActiveAlarms(); if (alarms.Any()) { double busy_UT_end = alarms.Last().ut; double busyTime = Math.Round(busy_UT_end - Utils.UT()); //Log(String.Format("Bef - title:{0}, UT:{1}, Time:{2}", alarm.Title, alarm.UT, alarm.Time)); alarm.UT += busyTime; alarm.Time += busyTime; //Log(String.Format("Aft - title:{0}, UT:{1}, Time:{2}", alarm.Title, alarm.UT, alarm.Time)); Messages.Add(Localizer.Format("#KVASS_alarm_appended", alarm.Title), 0); } else { Messages.Add(Localizer.Format("#KVASS_alarm_created", alarm.Title), 0); } break; } default: break; } }
private void OnAlarmRemoving(AlarmTypeBase deleting_alarm) { if (deleting_alarm == null || deleting_alarm.Actioned) { return; } if (deleting_alarm.title.StartsWith(Localizer.Format("#KVASS_alarm_title_prefix"), StringComparison.Ordinal)) { var alarms = ACAUtils.GetSortedPlanningActiveAlarms().ToList(); int del_index = alarms.FindIndex(z => z.Id == deleting_alarm.Id); double planning_UT_start; if (del_index == 0) { planning_UT_start = Utils.UT(); } else { planning_UT_start = alarms[del_index - 1].ut; } double planning_UT_end = deleting_alarm.ut; double planningTime = Math.Round(planning_UT_end - planning_UT_start); for (var i = del_index + 1; i < alarms.Count; i++) { //Log(String.Format("Rem Bef title:{0}, UT:{1:F0}, Time:{2:F0}", alarms[i].title, alarms[i].ut, alarms[i].timeEntry)); alarms[i].ut -= planningTime; alarms[i].timeEntry = alarms[i].ut - Utils.UT(); //-= planningTime; //Log(String.Format("Rem Aft title:{0}, UT:{1:F0}, Time:{2:F0}", alarms[i].title, alarms[i].ut, alarms[i].timeEntry)); alarms[i].OnScenarioUpdate(); alarms[i].UIInputPanelUpdate(); } RemovingMessages(deleting_alarm.title, alarms.Count - del_index - 1); } }