Files
modular-vr/Assets/Engine/Runtime/Measurements/Measure.cs
2022-12-08 10:24:00 +01:00

54 lines
1.9 KiB
C#

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<int, PuzzleMeasurement> _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 StartSession() => PuzzleStorage.Instance.StartSession();
public static void EndSession(float time)
{
PuzzleStorage.Instance.EndSession(time);
Logger.Log(PuzzleStorage.Instance.Session.ToString(), LogType.Measuring);
}
public static void LogAllMeasurements()
{
Engine.DefaultEngine.theme.puzzleTypes.ForEach(puzzle =>
{
Logger.Log(PuzzleStorage.Instance.LoadOrNew(puzzle).ToString(), LogType.Measuring);
});
Logger.Log(PuzzleStorage.Instance.Session.ToString(), LogType.Measuring);
}
public static void Clear() => _runningMeasurements = new Dictionary<int, PuzzleMeasurement>();
}
}