don't cache theme colours
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
30
Assets/Desert/Runtime/Hoop.cs
Normal file
30
Assets/Desert/Runtime/Hoop.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Desert/Runtime/Hoop.cs.meta
Normal file
3
Assets/Desert/Runtime/Hoop.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 175342625aa94174a12590b46ad484fc
|
||||||
|
timeCreated: 1670520604
|
||||||
@@ -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) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user