using EscapeRoomEngine.Engine.Runtime.Utilities; using UnityEngine; namespace EscapeRoomEngine.Engine.Runtime.Modules { public class PuzzleModule : Module { internal PuzzleState PuzzleState => PuzzleState.FromState(State); internal PuzzleModule(Space space, PuzzleModuleDescription description) : base(space, description) { srDimensions.Size = Vector2Int.one; // TODO: larger modules } internal override void InstantiateModule(Transform parent) { base.InstantiateModule(parent); space.room.AddPuzzle(this); } public static PuzzleModule FromModule(Module module) { if (module is PuzzleModule puzzleModule) { return puzzleModule; } throw new WrongTypeException(typeof(PuzzleModule), module.GetType(), typeof(Module)); } } }