using System.Collections.Generic; using EscapeRoomEngine.Engine.Runtime.Modules; using UnityEngine; using Logger = EscapeRoomEngine.Engine.Runtime.Utilities.Logger; using LogType = EscapeRoomEngine.Engine.Runtime.Utilities.LogType; namespace EscapeRoomEngine.Engine.Runtime.Measurements { public static class Measure { private static Dictionary _runningMeasurements; public static void StartMeasuring(PuzzleModuleDescription puzzle) { _runningMeasurements[puzzle.Id] = new PuzzleMeasurement { TimeStarted = Time.time, TimeSolved = Time.time }; Logger.Log($"Started measuring {puzzle}", LogType.Measuring); LogAllMeasurements(); } public static void Solve(PuzzleModuleDescription puzzle) { var measurement = _runningMeasurements[puzzle.Id]; PuzzleStorage.Instance.EndMeasurement(puzzle, measurement); Logger.Log($"Solved {puzzle} with measurement {measurement}", LogType.Measuring); } public static void LogAllMeasurements() { Engine.DefaultEngine.theme.puzzleTypes.ForEach(puzzle => { Logger.Log(PuzzleStorage.Instance.LoadOrNew(puzzle).ToString(), LogType.Measuring); }); } public static void Clear() => _runningMeasurements = new Dictionary(); } }