Souljack/Assets/_Project/Scripts/LevelGenerating/RoomView.cs

42 lines
1.4 KiB
C#

using System.Collections.Generic;
using _Project.Scripts.PlayerUtils;
using UnityEngine;
namespace _Project.Scripts.LevelGenerating
{
public class RoomView : MonoBehaviour
{
public Room Data;
public int Index;
public float Height;
public readonly List<Renderer> FloorRenderers = new List<Renderer>();
public readonly List<Renderer> CeilingRenderers = new List<Renderer>();
public readonly List<Renderer> WallRenderers = new List<Renderer>();
public readonly List<DoorController> Doors = new List<DoorController>();
public readonly List<EnemyAI> Enemies = new List<EnemyAI>();
public List<RenderTexture> BakedLightmaps = new List<RenderTexture>();
public Vector3 OriginMeters =>
new Vector3(Data.Position.x * LevelGrid.Module, 0f, Data.Position.y * LevelGrid.Module);
public Vector3 SizeMeters =>
new Vector3(Data.Length * LevelGrid.Module, Height, Data.Width * LevelGrid.Module);
public Vector3 CenterMeters =>
OriginMeters + new Vector3(SizeMeters.x / 2f, 0f, SizeMeters.z / 2f);
private void OnDestroy()
{
foreach (var rt in BakedLightmaps)
{
if (rt != null)
{
rt.Release();
Destroy(rt);
}
}
BakedLightmaps.Clear();
}
}
}