public static void KeyMashes()
        {
            if (Event.current.type == EventType.KeyDown)
            {
                var speed = Find.TickManager.CurTimeSpeed;
                if (KeyBindingDefOf.TogglePause.KeyDownEvent)
                {
                    TogglePause();


                    PlaySound();
                    PlayerKnowledgeDatabase.KnowledgeDemonstrated(ConceptDefOf.Pause,
                                                                  KnowledgeAmount.SpecificInteraction);
                    Event.current.Use();
                }

                else if (KeyBindingDefOf.TimeSpeed_Normal.KeyDownEvent)
                {
                    Find.TickManager.CurTimeSpeed = TimeSpeed.Normal;
                    TimeSlider.setTimeSettingForTimeSpeed(TimeSpeed.Normal);
                    PlaySound();
                    LearnedIt();
                    Event.current.Use();
                }

                else if (KeyBindingDefOf.TimeSpeed_Fast.KeyDownEvent)
                {
                    Find.TickManager.CurTimeSpeed = TimeSpeed.Fast;
                    TimeSlider.setTimeSettingForTimeSpeed(TimeSpeed.Fast);
                    PlaySound();
                    LearnedIt();
                    Event.current.Use();
                }

                else if (KeyBindingDefOf.TimeSpeed_Superfast.KeyDownEvent)
                {
                    Find.TickManager.CurTimeSpeed = TimeSpeed.Superfast;
                    TimeSlider.setTimeSettingForTimeSpeed(TimeSpeed.Superfast);
                    PlaySound();
                    LearnedIt();
                    Event.current.Use();
                }

                else if (KeyBindingDefOf.TimeSpeed_Ultrafast.KeyDownEvent)
                {
                    Find.TickManager.CurTimeSpeed = TimeSpeed.Ultrafast;
                    TimeSlider.setTimeSettingForTimeSpeed(TimeSpeed.Ultrafast);
                    PlaySound();
                    LearnedIt();
                    Event.current.Use();
                }

                else if (KeyBindingDefOf.Dev_TickOnce.KeyDownEvent && speed == TimeSpeed.Paused)
                {
                    Log.Message("TRiGgeR Single Tick");
                    Find.TickManager.DoSingleTick();
                    SoundDefOf.Clock_Stop.PlayOneShotOnCamera(null);
                }
            }
        }
Esempio n. 2
0
        private static void DrawSlider(Rect rect)
        {
            var old      = TimeSlider.timeSetting;
            var outSpeed = TimeSpeed.Normal;

            Rect slider = new Rect(rect.x, rect.y, rect.width * 4f, rect.height);

            string label  = TimeSlider.describe(TimeSlider.timeSetting, ref outSpeed);
            var    newVal = Widgets.HorizontalSlider(slider, old, 0f, TimeSlideMod.latest.maxSlider, false,
                                                     label);


            if (outSpeed == TimeSpeed.Paused)
            {
                Find.TickManager.Pause();
                TimeSlider.setTimeSettingForTimeSpeed(TimeSpeed.Paused);
            }
            else
            {
                var curTimeSpeed = Find.TickManager.CurTimeSpeed;
                if (outSpeed != curTimeSpeed)
                {
                    Find.TickManager.CurTimeSpeed =
                        outSpeed; //carry the helper around  MVP : Able to adjusted CutTimeSpeed to nearest reference
                }
            }

            if (Math.Abs(newVal - old) > .6e-6)
            {
                TimeSlider.timeSetting = newVal;
            }

            return;
        }
        private static void TogglePause()
        {
            TimeSlider.pause = !TimeSlider.pause;
            if (TimeSlider.pause)
            {
                last = TimeSlider.timeSetting;
                TimeSlider.setTimeSettingForTimeSpeed(TimeSpeed.Paused);
            }
            else
            {
                TimeSlider.timeSetting = last;
            }


            Find.TickManager.TogglePaused();
        }
Esempio n. 4
0
        static void Postfix(ref float __result, TickManager __instance)
        {
            if (__result < 0.04f || __instance.Paused || TimeSlider.timeSetting < TimeSlider.MinSetting)
            {
                __result = 0f;
                return;
            }

            if (__instance.slower.ForcedNormalSpeed)
            {
                __result = Math.Min(1.0f, TimeSlider.tickRate());
            }
            else
            {
                __result = TimeSlider.tickRate();
            }
        }
 private static void PlaySound()
 {
     TimeSlider.PlaySoundOf(Find.TickManager.CurTimeSpeed);
 }