Example #1
0
        internal static void CalcWarpRateTransitions()
        {
            if (TimeWarp.fetch == null)
            {
                return;
            }
            Log.dbg("WarpRates:{0}", TimeWarp.fetch.warpRates.Length);
            WarpRateTransitionPeriods = new List <WarpTransition>();
            for (int i = 0; i < TimeWarp.fetch.warpRates.Length; i++)
            {
                WarpTransition newRate = new WarpTransition(i, TimeWarp.fetch.warpRates[i]);

                if (i > 0)
                {
                    newRate.UTToRateDown = (TimeWarp.fetch.warpRates[i] + TimeWarp.fetch.warpRates[i - 1]) / 2;
                }
                if (i < TimeWarp.fetch.warpRates.Length - 1)
                {
                    newRate.UTToRateUp = (TimeWarp.fetch.warpRates[i] + TimeWarp.fetch.warpRates[i + 1]) / 2;
                }

                WarpRateTransitionPeriods.Add(newRate);
            }

            foreach (WarpTransition wt in WarpRateTransitionPeriods)
            {
                List <WarpTransition> warpsTo1Times = WarpRateTransitionPeriods.Where(w => w.Index <= wt.Index).ToList();
                wt.UTTo1Times = warpsTo1Times.Sum(w => w.UTToRateDown);
            }

            //foreach (WarpTransition item in WarpRateTransitionPeriods.OrderBy(w => w.Index))
            //{
            //    Log.dbg("{0}({1}):Up-{2} Down-{3} To0-{4}", item.Rate, item.Index, item.UTToRateUp, item.UTToRateDown, item.UTTo1Times);
            //}
        }
        internal static void CalcWarpRateTransitions()
        {
            MonoBehaviourExtended.LogFormatted("WarpRates:{0}", TimeWarp.fetch.warpRates.Length);
            WarpRateTransitionPeriods = new List <WarpTransition>();
            for (int i = 0; i < TimeWarp.fetch.warpRates.Length; i++)
            {
                WarpTransition newRate = new WarpTransition(i, TimeWarp.fetch.warpRates[i]);

                if (i > 0)
                {
                    newRate.UTToRateDown = (TimeWarp.fetch.warpRates[i] + TimeWarp.fetch.warpRates[i - 1]) / 2;
                }
                if (i < TimeWarp.fetch.warpRates.Length - 1)
                {
                    newRate.UTToRateUp = (TimeWarp.fetch.warpRates[i] + TimeWarp.fetch.warpRates[i + 1]) / 2;
                }

                WarpRateTransitionPeriods.Add(newRate);
            }

            foreach (WarpTransition wt in WarpRateTransitionPeriods)
            {
                List <WarpTransition> warpsTo1Times = WarpRateTransitionPeriods.Where(w => w.Index <= wt.Index).ToList();
                wt.UTTo1Times = warpsTo1Times.Sum(w => w.UTToRateDown);
            }

            foreach (WarpTransition item in WarpRateTransitionPeriods.OrderBy(w => w.Index))
            {
                MonoBehaviourExtended.LogFormatted_DebugOnly("{0}({1}):Up-{2} Down-{3} To0-{4}", item.Rate, item.Index, item.UTToRateUp, item.UTToRateDown, item.UTTo1Times);
            }
        }
        internal static void CalcWarpRateTransitions()
        {
            MonoBehaviourExtended.LogFormatted("WarpRates:{0}", TimeWarp.fetch.warpRates.Length);
            WarpRateTransitionPeriods = new List<WarpTransition>();
            for (int i = 0; i < TimeWarp.fetch.warpRates.Length; i++)
            {
                WarpTransition newRate = new WarpTransition(i, TimeWarp.fetch.warpRates[i]);

                if (i>0) {
                    newRate.UTToRateDown = (TimeWarp.fetch.warpRates[i] + TimeWarp.fetch.warpRates[i-1]) / 2;
                }
                if (i<TimeWarp.fetch.warpRates.Length-1) {
                    newRate.UTToRateUp = (TimeWarp.fetch.warpRates[i] + TimeWarp.fetch.warpRates[i+1]) / 2;
                }

                WarpRateTransitionPeriods.Add(newRate);
            }

            foreach (WarpTransition wt in WarpRateTransitionPeriods)
            {
                List<WarpTransition> warpsTo1Times = WarpRateTransitionPeriods.Where(w => w.Index <= wt.Index).ToList();
                wt.UTTo1Times = warpsTo1Times.Sum(w => w.UTToRateDown);
            }

            //foreach (WarpTransition item in WarpRateTransitionPeriods.OrderBy(w => w.Index))
            //{
            //    MonoBehaviourExtended.LogFormatted_DebugOnly("{0}({1}):Up-{2} Down-{3} To0-{4}", item.Rate, item.Index, item.UTToRateUp, item.UTToRateDown, item.UTTo1Times);
            //}
        }