public float GetLayerMultiplier(TimeLayers layer) { if (timeMultipliers.ContainsKey(layer)) { return(timeMultipliers[layer]); } return(1.0f); }
public float GetTotalElapsedTime(TimeLayers layer) { if (!timeElapsedPerLayer.ContainsKey(layer)) { timeElapsedPerLayer[layer] = 0f; } return(timeElapsedPerLayer[layer]); }
public float GetFixedDeltaTime(TimeLayers layer) { if (!timeMultipliers.ContainsKey(layer)) { timeMultipliers[layer] = 1.0f; } return(Time.fixedDeltaTime * timeMultipliers[layer]); }
public void AddCustomTimeCounter(string timeCounter, TimeLayers layer) { if (customTimeElapsed.ContainsKey(timeCounter)) { return; } customTimeElapsed[timeCounter] = new FrostyAccumulatedTimeLayer() { layer = layer, elapsedTime = 0f }; }
public IEnumerator WaitForSeconds(TimeLayers layer, float seconds) { if (seconds <= 0f) { yield break; } while (seconds > 0f) { seconds -= this.GetFixedDeltaTime(layer); yield return(1); } }
public void SetLayerMultiplier(TimeLayers layer, float multiplier) { timeMultipliers[layer] = multiplier; }
float this[TimeLayers timeLayer] => Time.deltaTime * GetLayerSpeed(timeLayer) * GlobalSpeed;
static IEnumerator WaitForSeconds_Custom(float time, TimeLayers timeLayer) { yield return(new WaitForSeconds(time * (1 / GetLayerSpeed(timeLayer)))); }
public static Coroutine WaitForSeconds(MonoBehaviour m, float time, TimeLayers timeLayer) { return(m.StartCoroutine(WaitForSeconds_Custom(time, timeLayer))); }
public static void SetLayerSpeed(TimeLayers timeLayer, float value) { _timeLayers[timeLayer] = value; }
public static float GetLayerSpeed(TimeLayers timeLayer) => _timeLayers[timeLayer] * _globalSpeed;