2026-04-21 23:28:49 +07:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace Hallucinate.GameSetup.Maze
|
|
|
|
|
{
|
|
|
|
|
[CreateAssetMenu(fileName = "MazeVisualProfile", menuName = "Hallucinate/Maze/Visual Profile")]
|
|
|
|
|
public class MazeVisualProfile : ScriptableObject
|
|
|
|
|
{
|
2026-05-01 20:50:08 +07:00
|
|
|
[Header("Rotation Offsets")]
|
|
|
|
|
public float tJunctionOffset = 0f;
|
|
|
|
|
public float cornerOffset = 0f;
|
|
|
|
|
public float deadEndOffset = 0f;
|
|
|
|
|
|
2026-04-21 23:28:49 +07:00
|
|
|
[Header("Prefabs")]
|
|
|
|
|
public GameObject wallPrefab;
|
|
|
|
|
public GameObject corridorPrefab;
|
|
|
|
|
public GameObject processingPrefab;
|
|
|
|
|
public GameObject pathPrefab;
|
|
|
|
|
public GameObject startPrefab;
|
|
|
|
|
public GameObject endPrefab;
|
2026-05-06 01:47:40 +07:00
|
|
|
public GameObject stairUpPrefab;
|
|
|
|
|
public GameObject stairDownPrefab;
|
2026-05-01 02:48:43 +07:00
|
|
|
|
|
|
|
|
[Header("Corridor Types")]
|
|
|
|
|
public GameObject corridorStraight;
|
|
|
|
|
public GameObject corridorCorner;
|
|
|
|
|
public GameObject corridorTJunction;
|
|
|
|
|
public GameObject corridorCross;
|
|
|
|
|
public GameObject corridorDeadEnd;
|
2026-04-21 23:28:49 +07:00
|
|
|
|
|
|
|
|
[Header("Visualization Settings")]
|
|
|
|
|
public float scale = 1f;
|
|
|
|
|
public float animationDuration = 0.25f;
|
|
|
|
|
|
|
|
|
|
public GameObject GetPrefab(MazeCellType type)
|
|
|
|
|
{
|
|
|
|
|
return type switch
|
|
|
|
|
{
|
|
|
|
|
MazeCellType.Wall => wallPrefab,
|
|
|
|
|
MazeCellType.Corridor => corridorPrefab,
|
|
|
|
|
MazeCellType.Processing => processingPrefab,
|
|
|
|
|
MazeCellType.Path => pathPrefab,
|
|
|
|
|
MazeCellType.Start => startPrefab,
|
|
|
|
|
MazeCellType.End => endPrefab,
|
2026-05-08 09:50:34 +07:00
|
|
|
MazeCellType.StairsUp => stairUpPrefab,
|
|
|
|
|
MazeCellType.StairsDown => stairDownPrefab,
|
2026-04-21 23:28:49 +07:00
|
|
|
_ => null
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|