diff --git a/Assets/Desert/Runtime/Dispenser/Dispenser.cs b/Assets/Desert/Runtime/Dispenser/Dispenser.cs index d3ff1db..c1d4966 100644 --- a/Assets/Desert/Runtime/Dispenser/Dispenser.cs +++ b/Assets/Desert/Runtime/Dispenser/Dispenser.cs @@ -28,12 +28,12 @@ namespace EscapeRoomEngine.Desert.Runtime.Dispenser { CloseHatch(); dispenseButton.Disable(); - _light.color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor.hdr; + _light.color = Engine.Runtime.Engine.Theme.solvedColor.hdr; } else { dispenseButton.Enable(); - _light.color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor.hdr; + _light.color = Engine.Runtime.Engine.Theme.puzzleColor.hdr; } } } diff --git a/Assets/Desert/Runtime/HoloButton.cs b/Assets/Desert/Runtime/HoloButton.cs index 48f5283..f848355 100644 --- a/Assets/Desert/Runtime/HoloButton.cs +++ b/Assets/Desert/Runtime/HoloButton.cs @@ -23,13 +23,13 @@ namespace EscapeRoomEngine.Desert.Runtime ButtonEvent += (_, _) => { - var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor; + var color = Engine.Runtime.Engine.Theme.puzzleColor; if (!Active) { - color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor; + color = Engine.Runtime.Engine.Theme.solvedColor; } else if (Pressed) { - color = Engine.Runtime.Engine.DefaultEngine.theme.activeColor; + color = Engine.Runtime.Engine.Theme.activeColor; } _material.SetColor(FresnelColor, color.hdr); diff --git a/Assets/Desert/Runtime/Hoop.cs b/Assets/Desert/Runtime/Hoop.cs index 9ee024d..cb147bf 100644 --- a/Assets/Desert/Runtime/Hoop.cs +++ b/Assets/Desert/Runtime/Hoop.cs @@ -28,12 +28,12 @@ namespace EscapeRoomEngine.Desert.Runtime switch (type) { case PuzzleEventType.Restarted: - var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor; + var color = Engine.Runtime.Engine.Theme.puzzleColor; rings.ForEach(ring => ring.color = color.hdr); _dispenser.Reset(); break; case PuzzleEventType.Solved: - color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor; + color = Engine.Runtime.Engine.Theme.solvedColor; rings.ForEach(ring => ring.color = color.hdr); _dispenser.Solve(); break; diff --git a/Assets/Desert/Runtime/Portal/DesertPortal.cs b/Assets/Desert/Runtime/Portal/DesertPortal.cs index a60d48f..33e20a8 100644 --- a/Assets/Desert/Runtime/Portal/DesertPortal.cs +++ b/Assets/Desert/Runtime/Portal/DesertPortal.cs @@ -20,10 +20,10 @@ namespace EscapeRoomEngine.Desert.Runtime.Portal switch (type) { case DoorEventType.Unlocked: - _emission.color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor.hdr; + _emission.color = Engine.Runtime.Engine.Theme.solvedColor.hdr; break; case DoorEventType.Locked: - _emission.color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor.hdr; + _emission.color = Engine.Runtime.Engine.Theme.puzzleColor.hdr; break; } }; diff --git a/Assets/Desert/Runtime/Puzzle A/Ball.cs b/Assets/Desert/Runtime/Puzzle A/Ball.cs index b2e2305..90415df 100644 --- a/Assets/Desert/Runtime/Puzzle A/Ball.cs +++ b/Assets/Desert/Runtime/Puzzle A/Ball.cs @@ -18,8 +18,8 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A set { statusLight.color = value ? - Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor.hdr - : Engine.Runtime.Engine.DefaultEngine.theme.solvedColor.hdr; + Engine.Runtime.Engine.Theme.puzzleColor.hdr + : Engine.Runtime.Engine.Theme.solvedColor.hdr; ring.rotating = value; if (!value) { diff --git a/Assets/Desert/Runtime/Puzzle A/Terminal.cs b/Assets/Desert/Runtime/Puzzle A/Terminal.cs index 4590e7e..ee56c22 100644 --- a/Assets/Desert/Runtime/Puzzle A/Terminal.cs +++ b/Assets/Desert/Runtime/Puzzle A/Terminal.cs @@ -46,12 +46,12 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A { case PuzzleEventType.Restarted: _ball.Active = true; - terminalLight.color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor.hdr; + terminalLight.color = Engine.Runtime.Engine.Theme.puzzleColor.hdr; symbols.ForEach(symbol => symbol.Enable()); break; case PuzzleEventType.Solved: _ball.Active = false; - terminalLight.color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor.hdr; + terminalLight.color = Engine.Runtime.Engine.Theme.solvedColor.hdr; symbols.ForEach(symbol => symbol.Disable()); break; case PuzzleEventType.WrongInput: diff --git a/Assets/Desert/Runtime/Puzzle B/PuzzleB.cs b/Assets/Desert/Runtime/Puzzle B/PuzzleB.cs index dc99173..4b65a47 100644 --- a/Assets/Desert/Runtime/Puzzle B/PuzzleB.cs +++ b/Assets/Desert/Runtime/Puzzle B/PuzzleB.cs @@ -42,14 +42,14 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_B switch (type) { case PuzzleEventType.Restarted: - var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor; + var color = Engine.Runtime.Engine.Theme.puzzleColor; crystal.Color = color; lights.ForEach(emission => emission.color = color.hdr); rotators.ForEach(rotator => rotator.Emission.color = color.hdr); buttonActions.ForEach(action => action.button.Enable()); break; case PuzzleEventType.Solved: - color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor; + color = Engine.Runtime.Engine.Theme.solvedColor; crystal.Color = color; lights.ForEach(emission => emission.color = color.hdr); rotators.ForEach(rotator => rotator.Emission.color = color.hdr); diff --git a/Assets/Desert/Runtime/Puzzle C/Hole.cs b/Assets/Desert/Runtime/Puzzle C/Hole.cs index 55a15f6..c01dda6 100644 --- a/Assets/Desert/Runtime/Puzzle C/Hole.cs +++ b/Assets/Desert/Runtime/Puzzle C/Hole.cs @@ -30,7 +30,7 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C { if (Active) { - var color = Engine.Runtime.Engine.DefaultEngine.theme.activeColor; + var color = Engine.Runtime.Engine.Theme.activeColor; orb.Color = color.hdr; Emission.color = color.hdr; @@ -44,7 +44,7 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C var orb = other.GetComponent(); if (orb != null) { - var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor; + var color = Engine.Runtime.Engine.Theme.puzzleColor; if (Active) { diff --git a/Assets/Desert/Runtime/Puzzle C/Holes.cs b/Assets/Desert/Runtime/Puzzle C/Holes.cs index 2ac51db..f17fece 100644 --- a/Assets/Desert/Runtime/Puzzle C/Holes.cs +++ b/Assets/Desert/Runtime/Puzzle C/Holes.cs @@ -31,7 +31,7 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C switch (type) { case PuzzleEventType.Restarted: - var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor; + var color = Engine.Runtime.Engine.Theme.puzzleColor; _holes.ForEach(hole => { hole.Enable(); @@ -41,8 +41,8 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C _dispenser.Reset(); break; case PuzzleEventType.Solved: - var solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor; - var activeColor = Engine.Runtime.Engine.DefaultEngine.theme.activeColor; + var solvedColor = Engine.Runtime.Engine.Theme.solvedColor; + var activeColor = Engine.Runtime.Engine.Theme.activeColor; _holes.ForEach(hole => { hole.Disable(); diff --git a/Assets/Engine/Runtime/Editor/EngineEditor.cs b/Assets/Engine/Runtime/Editor/EngineEditor.cs index 06914e5..17db950 100644 --- a/Assets/Engine/Runtime/Editor/EngineEditor.cs +++ b/Assets/Engine/Runtime/Editor/EngineEditor.cs @@ -43,7 +43,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Editor { if (EditorApplication.isPlaying) { - Engine.DefaultEngine.CurrentRoom.Match(some: room => room.EnterRoom()); + Engine.Instance.CurrentRoom.Match(some: room => room.EnterRoom()); UpdateUI(); } } @@ -52,7 +52,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Editor { if (EditorApplication.isPlaying) { - Engine.DefaultEngine.CurrentRoom.Match(some: room => room.SkipRoom()); + Engine.Instance.CurrentRoom.Match(some: room => room.SkipRoom()); UpdateUI(); } } @@ -61,8 +61,8 @@ namespace EscapeRoomEngine.Engine.Runtime.Editor { if (EditorApplication.isPlaying) { - Engine.DefaultEngine.CurrentRoom.Match(some: room => room.SkipRoom()); - Engine.DefaultEngine.CurrentRoom.Match(some: room => room.EnterRoom()); + Engine.Instance.CurrentRoom.Match(some: room => room.SkipRoom()); + Engine.Instance.CurrentRoom.Match(some: room => room.EnterRoom()); UpdateUI(); } } @@ -73,7 +73,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Editor { if (!_registeredUpdateEvent) { - Engine.DefaultEngine.UpdateUIEvent += UpdateUI; + Engine.Instance.UpdateUIEvent += UpdateUI; _registeredUpdateEvent = true; } } @@ -82,9 +82,9 @@ namespace EscapeRoomEngine.Engine.Runtime.Editor _registeredUpdateEvent = false; } - _passToNextRoomButton.SetEnabled(EditorApplication.isPlaying && Engine.DefaultEngine.NumberOfRooms > 1); - _skipCurrentRoomButton.SetEnabled(EditorApplication.isPlaying && Engine.DefaultEngine.NumberOfRooms > 0); - _skipAndPassButton.SetEnabled(EditorApplication.isPlaying && Engine.DefaultEngine.NumberOfRooms > 0); + _passToNextRoomButton.SetEnabled(EditorApplication.isPlaying && Engine.Instance.NumberOfRooms > 1); + _skipCurrentRoomButton.SetEnabled(EditorApplication.isPlaying && Engine.Instance.NumberOfRooms > 0); + _skipAndPassButton.SetEnabled(EditorApplication.isPlaying && Engine.Instance.NumberOfRooms > 0); } } #endif diff --git a/Assets/Engine/Runtime/Engine.cs b/Assets/Engine/Runtime/Engine.cs index 04a7b9d..bcce55d 100644 --- a/Assets/Engine/Runtime/Engine.cs +++ b/Assets/Engine/Runtime/Engine.cs @@ -12,7 +12,8 @@ namespace EscapeRoomEngine.Engine.Runtime { public class Engine : MonoBehaviour { - public static Engine DefaultEngine + public static EngineTheme Theme => Instance.theme; + public static Engine Instance { get { diff --git a/Assets/Engine/Runtime/Measurements/Puzzle.cs b/Assets/Engine/Runtime/Measurements/Puzzle.cs index b8d2531..ddfc006 100644 --- a/Assets/Engine/Runtime/Measurements/Puzzle.cs +++ b/Assets/Engine/Runtime/Measurements/Puzzle.cs @@ -27,7 +27,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements public override string ToString() { - return $"{Engine.DefaultEngine.theme.GetPuzzle(ID)}: avg. {AverageTimeToSolve.ToTimeSpan():m':'ss} ({string.Join(", ", Measurements)})"; + return $"{Engine.Theme.GetPuzzle(ID)}: avg. {AverageTimeToSolve.ToTimeSpan():m':'ss} ({string.Join(", ", Measurements)})"; } } } \ No newline at end of file diff --git a/Assets/Engine/Runtime/Passage.cs b/Assets/Engine/Runtime/Passage.cs index 01bfd70..fe47fce 100644 --- a/Assets/Engine/Runtime/Passage.cs +++ b/Assets/Engine/Runtime/Passage.cs @@ -12,7 +12,7 @@ namespace EscapeRoomEngine.Engine.Runtime internal Passage(DoorModule from) { - if (!from.IsExit && !from.description.Equals(Engine.DefaultEngine.theme.spawnDoor)) + if (!from.IsExit && !from.description.Equals(Engine.Theme.spawnDoor)) { throw new WrongTypeException(DoorType.Exit, DoorType.Entrance); } diff --git a/Assets/Engine/Runtime/Room.cs b/Assets/Engine/Runtime/Room.cs index 3f22034..a41b5ef 100644 --- a/Assets/Engine/Runtime/Room.cs +++ b/Assets/Engine/Runtime/Room.cs @@ -83,12 +83,12 @@ namespace EscapeRoomEngine.Engine.Runtime { // generate a new room as soon as the player completes all puzzles in this one case DoorEventType.Unlocked when !LastRoom && door.Equals(exit.fromOut): - Engine.DefaultEngine.GenerateRoom(); + Engine.Instance.GenerateRoom(); break; // start measurements on every puzzle as soon as the player enters the last room - case DoorEventType.ExitedFrom when door.Equals(entrance.toIn) && Engine.DefaultEngine.CurrentRoom.Contains(this): + case DoorEventType.ExitedFrom when door.Equals(entrance.toIn) && Engine.Instance.CurrentRoom.Contains(this): _puzzles.ForEach(puzzle => Measure.StartMeasuring((PuzzleModuleDescription)puzzle.description)); - Engine.DefaultEngine.HidePreviousRoom(); + Engine.Instance.HidePreviousRoom(); break; } }; diff --git a/Assets/Engine/Runtime/Space.cs b/Assets/Engine/Runtime/Space.cs index a187d5c..76698d5 100644 --- a/Assets/Engine/Runtime/Space.cs +++ b/Assets/Engine/Runtime/Space.cs @@ -46,8 +46,8 @@ namespace EscapeRoomEngine.Engine.Runtime this.room = room; rrPlacement = GenerateSpaceDimensions( entrance, - Engine.DefaultEngine.theme.minRoomSize.ProjectAtFloor(), - Engine.DefaultEngine.theme.playSpace.ProjectAtFloor()); + Engine.Theme.minRoomSize.ProjectAtFloor(), + Engine.Theme.playSpace.ProjectAtFloor()); // connect the space to its passage entrance.PlaceEntrance(new DoorModule(this, @@ -119,7 +119,7 @@ namespace EscapeRoomEngine.Engine.Runtime else location = left ? TileLocation.W : right ? TileLocation.E : TileLocation.C; - var tileObject = Object.Instantiate(Engine.DefaultEngine.theme.spaceTile, _spaceTiles.transform, false); + var tileObject = Object.Instantiate(Engine.Theme.spaceTile, _spaceTiles.transform, false); tileObject.transform.localPosition = new Vector3(x, 0, z); tileObject.showTile = location; } diff --git a/Assets/Engine/Runtime/UI/GameControl.cs b/Assets/Engine/Runtime/UI/GameControl.cs index 8d8e0e9..ea0ae25 100644 --- a/Assets/Engine/Runtime/UI/GameControl.cs +++ b/Assets/Engine/Runtime/UI/GameControl.cs @@ -41,7 +41,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI private void Awake() { - _targetTime = Engine.DefaultEngine.initialTargetTime; + _targetTime = Engine.Instance.initialTargetTime; } private void Start() @@ -82,7 +82,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI _timeElapsed = 0; // generate the first room if it hasn't been generated yet - Engine.DefaultEngine.CurrentRoom.Match(none: () => Engine.DefaultEngine.GenerateRoom()); + Engine.Instance.CurrentRoom.Match(none: () => Engine.Instance.GenerateRoom()); // start a new session Measure.StartSession();