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