Added saving of buildings

This commit is contained in:
2026-04-13 19:11:21 +01:00
parent d8253bd275
commit 498343a50c
9 changed files with 176 additions and 38 deletions

View File

@@ -1,26 +1,18 @@
using System.Collections.Generic;
using Fruitomation.Global;
using UnityEngine;
using Fruitomation.Global;
using Fruitomation.Game;
using UnityEngine.UI;
using UnityEngine;
namespace Fruitomation.UI
{
public class BuildingMenu : MonoBehaviour
{
[System.Serializable] private class BuildingInfo
{
public string Name;
public GameObject Prefab;
}
[Header("References")]
[SerializeField] private GameCursor Cursor;
[SerializeField] private GameObject Menu;
[SerializeField] private GameObject MenuGrid;
[SerializeField] private GameObject MenuItemPrefab;
[Header("Options")]
[SerializeField] private List<BuildingInfo> BuildingPrefabs;
[SerializeField] private BuildingRegistry BuildingPrefabs;
private void Update()
{
@@ -29,7 +21,7 @@ namespace Fruitomation.UI
private void Start()
{
foreach (BuildingInfo info in BuildingPrefabs)
foreach (BuildingRegistry.BuildingInfo info in BuildingPrefabs.GetBuildings())
{
GameObject go = Instantiate(MenuItemPrefab, MenuGrid.transform);
Text text = go.GetComponentInChildren<Text>();
@@ -40,7 +32,7 @@ namespace Fruitomation.UI
butt.onClick.AddListener(() =>
{
GameStateController.State = GameState.Building;
Cursor.SetSelectedBuildingToBuild(info.Prefab);
Cursor.SetSelectedBuildingToBuild(info);
});
}
}

View File

@@ -24,7 +24,7 @@ namespace Fruitomation.UI
[Header("Read Only")]
[SerializeField, InspectorReadOnly] private float CurrentMouseClickStrength;
[SerializeField, InspectorReadOnly] private Vector2Int GridPosition;
[SerializeField, InspectorReadOnly] private GameObject SelectedBuildingToBuild;
[SerializeField, InspectorReadOnly] private BuildingRegistry.BuildingInfo SelectedBuildingToBuild;
[SerializeField, InspectorReadOnly] private bool FlipCurrentBuilding;
private readonly ContactFilter2D ContactFilter = new();
@@ -35,9 +35,9 @@ namespace Fruitomation.UI
private float StartOfMouseClick;
private bool MouseOnGrid;
public void SetSelectedBuildingToBuild(GameObject prefab)
public void SetSelectedBuildingToBuild(BuildingRegistry.BuildingInfo prefab)
{
SelectedBuildingsBuildingBase = prefab.GetComponent<Building>();
SelectedBuildingsBuildingBase = prefab.Prefab.GetComponent<Building>();
SelectedBuildingToBuild = prefab;
FlipCurrentBuilding = false;