don't cache theme colours

This commit is contained in:
2022-12-02 11:03:00 +01:00
parent 88f1b19990
commit 824e043862
10 changed files with 71 additions and 75 deletions

View File

@@ -1,5 +1,4 @@
using EscapeRoomEngine.Engine.Runtime.Utilities; using NaughtyAttributes;
using NaughtyAttributes;
using UnityEngine; using UnityEngine;
namespace EscapeRoomEngine.Desert.Runtime namespace EscapeRoomEngine.Desert.Runtime
@@ -12,14 +11,10 @@ namespace EscapeRoomEngine.Desert.Runtime
[BoxGroup("Internal")] [Required] public MeshRenderer holoRenderer; [BoxGroup("Internal")] [Required] public MeshRenderer holoRenderer;
private Material _material; private Material _material;
private DynamicColor _puzzleColor, _solvedColor, _activeColor;
private void Awake() private void Awake()
{ {
_material = holoRenderer.material; _material = holoRenderer.material;
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
_activeColor = Engine.Runtime.Engine.DefaultEngine.theme.activeColor;
} }
protected override void Start() protected override void Start()
@@ -28,13 +23,13 @@ namespace EscapeRoomEngine.Desert.Runtime
ButtonEvent += (_, _) => ButtonEvent += (_, _) =>
{ {
var color = _puzzleColor; var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
if (!Active) if (!Active)
{ {
color = _solvedColor; color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
} else if (Pressed) } else if (Pressed)
{ {
color = _activeColor; color = Engine.Runtime.Engine.DefaultEngine.theme.activeColor;
} }
_material.SetColor(FresnelColor, color.hdr); _material.SetColor(FresnelColor, color.hdr);

View File

@@ -0,0 +1,30 @@
using System.Collections.Generic;
using NaughtyAttributes;
using UnityEngine;
namespace EscapeRoomEngine.Desert.Runtime
{
[RequireComponent(typeof(Collider))]
public class Hoop : MonoBehaviour
{
[BoxGroup("Internal")] [SerializeField]
private List<Emission> rings;
public bool Solved
{
set
{
if (value)
{
rings.ForEach(ring => ring.color = );
}
else
{
}
}
}
private int _orbCount;
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 175342625aa94174a12590b46ad484fc
timeCreated: 1670520604

View File

@@ -1,5 +1,4 @@
using EscapeRoomEngine.Engine.Runtime.Modules; using EscapeRoomEngine.Engine.Runtime.Modules;
using EscapeRoomEngine.Engine.Runtime.Utilities;
using NaughtyAttributes; using NaughtyAttributes;
namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
@@ -9,14 +8,6 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
[BoxGroup("Internal")] [Required] public Emission statusLight; [BoxGroup("Internal")] [Required] public Emission statusLight;
[BoxGroup("Internal")] [Required] public Ring ring; [BoxGroup("Internal")] [Required] public Ring ring;
private DynamicColor _puzzleColor, _solvedColor;
private void Awake()
{
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
}
public bool StatusLight public bool StatusLight
{ {
set => statusLight.active = value; set => statusLight.active = value;
@@ -24,14 +15,13 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
public bool Active public bool Active
{ {
get => _active;
set set
{ {
_active = value; statusLight.color = value ?
Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor.hdr
statusLight.color = _active ? _puzzleColor.hdr : _solvedColor.hdr; : Engine.Runtime.Engine.DefaultEngine.theme.solvedColor.hdr;
ring.rotating = _active; ring.rotating = value;
if (!_active) if (!value)
{ {
ring.crystal.Active = false; ring.crystal.Active = false;
ring.symbols.ForEach(symbol => symbol.Active = false); ring.symbols.ForEach(symbol => symbol.Active = false);
@@ -39,8 +29,6 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
} }
} }
private bool _active;
public override void SetModule(Module module) {} public override void SetModule(Module module) {}
} }
} }

View File

@@ -1,5 +1,4 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using EscapeRoomEngine.Engine.Runtime.Modules; using EscapeRoomEngine.Engine.Runtime.Modules;
using EscapeRoomEngine.Engine.Runtime.Utilities; using EscapeRoomEngine.Engine.Runtime.Utilities;
@@ -26,7 +25,6 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
private IOption<Symbol> _activeSymbol; private IOption<Symbol> _activeSymbol;
private Animator _animator; private Animator _animator;
private Ball _ball; private Ball _ball;
private DynamicColor _puzzleColor, _solvedColor;
private void Awake() private void Awake()
{ {
@@ -35,9 +33,6 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
List<SymbolButton> symbolInstances = new(symbols.Count); List<SymbolButton> symbolInstances = new(symbols.Count);
symbolInstances.AddRange(symbols.Select((t, i) => Instantiate(t, symbolSlots[i], false))); symbolInstances.AddRange(symbols.Select((t, i) => Instantiate(t, symbolSlots[i], false)));
symbols = symbolInstances; symbols = symbolInstances;
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
} }
protected override void Start() protected override void Start()
@@ -51,12 +46,12 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_A
{ {
case PuzzleEventType.Restarted: case PuzzleEventType.Restarted:
_ball.Active = true; _ball.Active = true;
terminalLight.color = _puzzleColor.hdr; terminalLight.color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor.hdr;
symbols.ForEach(symbol => symbol.Enable()); symbols.ForEach(symbol => symbol.Enable());
break; break;
case PuzzleEventType.Solved: case PuzzleEventType.Solved:
_ball.Active = false; _ball.Active = false;
terminalLight.color = _solvedColor.hdr; terminalLight.color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor.hdr;
symbols.ForEach(symbol => symbol.Disable()); symbols.ForEach(symbol => symbol.Disable());
break; break;
case PuzzleEventType.WrongInput: case PuzzleEventType.WrongInput:

View File

@@ -31,17 +31,8 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_B
[BoxGroup("Internal")] [SerializeField] [BoxGroup("Internal")] [SerializeField]
private Crystal crystal; private Crystal crystal;
private DynamicColor _puzzleColor, _solvedColor;
private float _previousPress = -1; private float _previousPress = -1;
protected override void Awake()
{
base.Awake();
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
}
protected override void Start() protected override void Start()
{ {
base.Start(); base.Start();
@@ -52,15 +43,17 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_B
switch (type) switch (type)
{ {
case PuzzleEventType.Restarted: case PuzzleEventType.Restarted:
crystal.Color = _puzzleColor; var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
lights.ForEach(emission => emission.color = _puzzleColor.hdr); crystal.Color = color;
rotators.ForEach(rotator => rotator.Emission.color = _puzzleColor.hdr); lights.ForEach(emission => emission.color = color.hdr);
rotators.ForEach(rotator => rotator.Emission.color = color.hdr);
buttonActions.ForEach(action => action.button.Enable()); buttonActions.ForEach(action => action.button.Enable());
break; break;
case PuzzleEventType.Solved: case PuzzleEventType.Solved:
crystal.Color = _solvedColor; color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
lights.ForEach(emission => emission.color = _solvedColor.hdr); crystal.Color = color;
rotators.ForEach(rotator => rotator.Emission.color = _solvedColor.hdr); lights.ForEach(emission => emission.color = color.hdr);
rotators.ForEach(rotator => rotator.Emission.color = color.hdr);
buttonActions.ForEach(action => action.button.Disable()); buttonActions.ForEach(action => action.button.Disable());
break; break;
} }

View File

@@ -1,5 +1,4 @@
using EscapeRoomEngine.Engine.Runtime.Modules; using EscapeRoomEngine.Engine.Runtime.Modules;
using EscapeRoomEngine.Engine.Runtime.Utilities;
using NaughtyAttributes; using NaughtyAttributes;
using UnityEngine; using UnityEngine;
using Logger = EscapeRoomEngine.Engine.Runtime.Utilities.Logger; using Logger = EscapeRoomEngine.Engine.Runtime.Utilities.Logger;
@@ -29,12 +28,12 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
{ {
CloseHatch(); CloseHatch();
dispenseButton.Disable(); dispenseButton.Disable();
_light.color = _solvedColor.hdr; _light.color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor.hdr;
} }
else else
{ {
dispenseButton.Enable(); dispenseButton.Enable();
_light.color = _puzzleColor.hdr; _light.color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor.hdr;
} }
} }
} }
@@ -42,14 +41,11 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
private float _previousDispense = -1; private float _previousDispense = -1;
private Animator _animator; private Animator _animator;
private Emission _light; private Emission _light;
private DynamicColor _puzzleColor, _solvedColor;
private void Awake() private void Awake()
{ {
_animator = GetComponent<Animator>(); _animator = GetComponent<Animator>();
_light = GetComponent<Emission>(); _light = GetComponent<Emission>();
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
} }
private void Start() private void Start()

View File

@@ -1,5 +1,4 @@
using EscapeRoomEngine.Engine.Runtime.Utilities; using UnityEngine;
using UnityEngine;
namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
{ {
@@ -11,14 +10,9 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
public Emission Emission { get; private set; } public Emission Emission { get; private set; }
private DynamicColor _puzzleColor, _activeColor;
private void Awake() private void Awake()
{ {
Emission = GetComponent<Emission>(); Emission = GetComponent<Emission>();
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_activeColor = Engine.Runtime.Engine.DefaultEngine.theme.activeColor;
} }
protected override void Start() protected override void Start()
@@ -35,8 +29,10 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
{ {
if (Active) if (Active)
{ {
orb.Color = _activeColor.hdr; var color = Engine.Runtime.Engine.DefaultEngine.theme.activeColor;
Emission.color = _activeColor.hdr;
orb.Color = color.hdr;
Emission.color = color.hdr;
Press(); Press();
} }
} }
@@ -47,12 +43,14 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
var orb = other.GetComponent<HoleOrb>(); var orb = other.GetComponent<HoleOrb>();
if (orb != null) if (orb != null)
{ {
var color = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
if (Active) if (Active)
{ {
Release(); Release();
Emission.color = _puzzleColor.hdr; Emission.color = color.hdr;
} }
orb.Color = _puzzleColor.hdr; orb.Color = color.hdr;
} }
} }
} }

View File

@@ -13,16 +13,12 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
private List<Hole> _holes; private List<Hole> _holes;
private Dispenser _dispenser; private Dispenser _dispenser;
private DynamicColor _puzzleColor, _solvedColor, _activeColor;
protected override void Awake() protected override void Awake()
{ {
base.Awake(); base.Awake();
_holes = new List<Hole>(GetComponentsInChildren<Hole>()); _holes = new List<Hole>(GetComponentsInChildren<Hole>());
_puzzleColor = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
_activeColor = Engine.Runtime.Engine.DefaultEngine.theme.activeColor;
} }
protected override void Start() protected override void Start()
@@ -35,21 +31,24 @@ namespace EscapeRoomEngine.Desert.Runtime.Puzzle_C
switch (type) switch (type)
{ {
case PuzzleEventType.Restarted: case PuzzleEventType.Restarted:
var color = Engine.Runtime.Engine.DefaultEngine.theme.puzzleColor;
_holes.ForEach(hole => _holes.ForEach(hole =>
{ {
hole.Enable(); hole.Enable();
hole.Emission.color = _puzzleColor.hdr; hole.Emission.color = color.hdr;
}); });
frameLight.color = _puzzleColor.hdr; frameLight.color = color.hdr;
_dispenser.Reset(); _dispenser.Reset();
break; break;
case PuzzleEventType.Solved: case PuzzleEventType.Solved:
var solvedColor = Engine.Runtime.Engine.DefaultEngine.theme.solvedColor;
var activeColor = Engine.Runtime.Engine.DefaultEngine.theme.activeColor;
_holes.ForEach(hole => _holes.ForEach(hole =>
{ {
hole.Disable(); hole.Disable();
hole.Emission.color = solution[hole.number] == 1 ? _activeColor.hdr : _solvedColor.hdr; hole.Emission.color = solution[hole.number] == 1 ? activeColor.hdr : solvedColor.hdr;
}); });
frameLight.color = _solvedColor.hdr; frameLight.color = solvedColor.hdr;
_dispenser.Solve(); _dispenser.Solve();
break; break;
} }

View File

@@ -1,4 +1,3 @@
using System;
using UnityEngine; using UnityEngine;
using Logger = EscapeRoomEngine.Engine.Runtime.Utilities.Logger; using Logger = EscapeRoomEngine.Engine.Runtime.Utilities.Logger;
using LogType = EscapeRoomEngine.Engine.Runtime.Utilities.LogType; using LogType = EscapeRoomEngine.Engine.Runtime.Utilities.LogType;