refactor: LevelDefinition ScriptableObject drives floor count and geometry

This commit is contained in:
2026-05-14 01:17:30 +02:00
parent 67df6bf6d6
commit f507707251
3 changed files with 71 additions and 20 deletions

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Infrastructure.Unity
{
[CreateAssetMenu(fileName = "LevelDefinition", menuName = "Decay Grid/Level Definition")]
public class LevelDefinition : ScriptableObject
{
[SerializeField] private int gridSizeX = 10;
[SerializeField] private int gridSizeY = 10;
[SerializeField] private float floorHeightDistance = 15f;
[SerializeField] private FloorConfig[] floors =
{
new() { pattern = FloorPatternType.Square },
new() { pattern = FloorPatternType.Donut },
new() { pattern = FloorPatternType.Circle }
};
public int GridSizeX => gridSizeX;
public int GridSizeY => gridSizeY;
public float FloorHeightDistance => floorHeightDistance;
public int FloorCount => floors.Length;
public IReadOnlyList<FloorConfig> Floors => floors;
}
[Serializable]
public class FloorConfig
{
public FloorPatternType pattern;
}
public enum FloorPatternType
{
Square,
Donut,
Circle
}
}