54 lines
1.9 KiB
C#
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>();
|
|
}
|
|
} |