internal void InvalidateMeAndNeighbors() { ChunkCache cache = World.Instance.GetCachedChunks(); Invalidate(); foreach (ChunkColumn column in cache.AllNeighborColumns(this)) { column.Invalidate(); } }
private void NotifyNeighbors() { ChunkCache cache = World.Instance.GetCachedChunks(); OnNeighborGenerated(); foreach (var neighborColumn in cache.AllNeighborColumns(this)) { if (neighborColumn == null) { continue; } neighborColumn.OnNeighborGenerated(); } }
private void OnNeighborGenerated() { if (Stage != ColumnStageEnum.Generated) { return; } ChunkCache cache = World.Instance.GetCachedChunks(); var allNeighborColumns = cache.AllNeighborColumns(this); foreach (var column in allNeighborColumns) { if (column == null || column.Stage == ColumnStageEnum.NotGenerated) { return; } } Stage = ColumnStageEnum.AllNeighborsGenerated; }