using System.Collections; using System.Collections.Generic; using BITKit; using BITKit.OpenWorld; using UnityEngine; namespace BITFALL.OpenWorld { public class RuntimeSetActiveService : MonoBehaviour { private readonly List _chunks = new(); private bool isInitialized; [BIT] public void Execute() { Clear(); foreach (var x in GetComponentsInChildren()) { if (x.gameObject.name.Contains("Cell") is false) continue; var chunk = x.gameObject.AddComponent(); UnityWorldChunkService.Singleton.Register(chunk); _chunks.Add(chunk); chunk.Initialize(); } if(isInitialized)return; destroyCancellationToken.Register(Clear); isInitialized = true; } private void Clear() { foreach (var chunk in _chunks) { UnityWorldChunkService.Singleton.Unregister(chunk); if (chunk) Destroy(chunk); } _chunks.Clear(); } } }