module state game objects

This commit is contained in:
2022-11-13 20:49:32 +01:00
parent 14ab0374cc
commit 5f19adcb43
13 changed files with 251 additions and 84 deletions

View File

@@ -25,6 +25,9 @@ namespace Escape_Room_Engine.Engine.Scripts
}
private static Engine _foundEngine;
public delegate void UpdateUIHandler();
public event UpdateUIHandler UpdateUIEvent;
[Required] public EngineConfiguration config;
public int NumberOfRooms => _rooms.Count;
@@ -38,6 +41,8 @@ namespace Escape_Room_Engine.Engine.Scripts
_playSpaceOrigin = new GameObject("Play Space Origin");
_playSpaceOrigin.transform.SetParent(transform);
_playSpaceOrigin.transform.localPosition = new Vector3(-config.playSpace.x / 2f, 0, -config.playSpace.y / 2f);
GenerateRoom();
}
public void GenerateRoom()
@@ -53,6 +58,8 @@ namespace Escape_Room_Engine.Engine.Scripts
GenerateSpace(room, entrance); // TODO: rooms with more than one space
room.InstantiateRoom(_playSpaceOrigin.transform, (_rooms.Count - 1).ToString());
UpdateUI();
}
private void GenerateSpace(Room room, Passage entrance)
@@ -77,14 +84,16 @@ namespace Escape_Room_Engine.Engine.Scripts
room.AddSpace(space, exit);
}
public void HideOldestRoom()
public void HidePreviousRoom()
{
if (NumberOfRooms > 0)
if (NumberOfRooms > 1)
{
_rooms[NumberOfRooms - 1].roomObject.SetActive(false);
_rooms[NumberOfRooms - 2].roomObject.SetActive(false);
}
}
private void UpdateUI() => UpdateUIEvent?.Invoke();
// ReSharper disable once SuggestBaseTypeForParameter
// ReSharper disable once UnusedMember.Local
private bool IsNotEmpty(List<DoorModuleDescription> modules) => modules.Count > 0;