37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
![]() |
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
namespace BITKit.WorldChunk
|
||
|
{
|
||
|
public interface IWorldChunk
|
||
|
{
|
||
|
Rect GetRect();
|
||
|
void SetActive(bool active);
|
||
|
}
|
||
|
public abstract class WorldChunk : MonoBehaviour, IWorldChunk
|
||
|
{
|
||
|
public static void Add(IWorldChunk chunk)
|
||
|
{
|
||
|
chunks.Add(chunk);
|
||
|
ChunksArray = chunks.ToArray();
|
||
|
}
|
||
|
public static void Remove(IWorldChunk chunk)
|
||
|
{
|
||
|
chunks.Remove(chunk);
|
||
|
ChunksArray = chunks.ToArray();
|
||
|
}
|
||
|
private static readonly List<IWorldChunk> chunks=new();
|
||
|
public static IWorldChunk[] ChunksArray { get; private set; }= Array.Empty<IWorldChunk>();
|
||
|
public abstract Rect GetRect();
|
||
|
public abstract void SetActive(bool active);
|
||
|
private void OnEnable()
|
||
|
{
|
||
|
chunks.Add(this);
|
||
|
}
|
||
|
private void OnDisable()
|
||
|
{
|
||
|
chunks.Remove(this);
|
||
|
}
|
||
|
}
|
||
|
}
|