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); //} }