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);
|
|
}
|
|
}
|
|
} |