set room size in ui
This commit is contained in:
@@ -19,6 +19,8 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
/// </summary>
|
||||
public class GameControl : MonoBehaviour
|
||||
{
|
||||
public static readonly Vector2Int DefaultRoomSize = new Vector2Int(2, 4);
|
||||
|
||||
/// <summary>
|
||||
/// The active instance of the game control.
|
||||
/// </summary>
|
||||
@@ -33,7 +35,11 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
[BoxGroup("Internal")] [SerializeField]
|
||||
private Button startButton, stopButton, pauseButton, addTimeButton, removeTimeButton;
|
||||
[BoxGroup("Internal")] [SerializeField]
|
||||
private Text timeText, roomTimeText, estimateTimeText, targetTimeText, percentileText;
|
||||
private Text timeText, roomTimeText, estimateTimeText, targetTimeText, percentileText, widthText, lengthText;
|
||||
[BoxGroup("Internal")] [SerializeField]
|
||||
private Slider roomWidth, roomLength;
|
||||
[BoxGroup("Internal")] [SerializeField]
|
||||
private Transform roomSizeElement;
|
||||
[BoxGroup("Internal")] [SerializeField]
|
||||
private PuzzlePlan puzzlePlan;
|
||||
|
||||
@@ -67,12 +73,15 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
/// The estimated total time the player will spend in the experience.
|
||||
/// </summary>
|
||||
public float EstimatedTime { get; private set; }
|
||||
public Vector2Int RoomSize { get; private set; }
|
||||
|
||||
private float _previousUIUpdate, _previousPlanUpdate;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
RoomSize = DefaultRoomSize;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
@@ -114,6 +123,8 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
pauseButton.interactable = gameState is GameState.Running or GameState.Paused;
|
||||
addTimeButton.interactable = gameState is GameState.Running or GameState.Paused;
|
||||
removeTimeButton.interactable = gameState is GameState.Running or GameState.Paused && TargetTime >= TimeElapsed + 60;
|
||||
roomWidth.interactable = gameState == GameState.Stopped;
|
||||
roomLength.interactable = gameState == GameState.Stopped;
|
||||
}
|
||||
|
||||
#region Time Controls
|
||||
@@ -124,6 +135,8 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
|
||||
TimeElapsed = 0;
|
||||
|
||||
Destroy(roomSizeElement.gameObject);
|
||||
|
||||
// generate the first room if it hasn't been generated yet
|
||||
Engine.Instance.CurrentRoom.Match(none: () => Engine.Instance.GenerateRoom());
|
||||
|
||||
@@ -217,6 +230,13 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
|
||||
|
||||
#endregion
|
||||
|
||||
public void SetRoomSize()
|
||||
{
|
||||
RoomSize = new Vector2Int((int)roomWidth.value, (int)roomLength.value);
|
||||
widthText.text = RoomSize.x.ToString();
|
||||
lengthText.text = RoomSize.y.ToString();
|
||||
}
|
||||
|
||||
public void ExitGame()
|
||||
{
|
||||
StopGame();
|
||||
|
||||
Reference in New Issue
Block a user