private void FlushBlockSet(ChunkSubspacePosition position, BlockDefinition definition, BlockDefinition prevDefinition) { if (prevDefinition.IsTransparent() != definition.IsTransparent()) { PushTransparencyCacheToAdjacentBlocks(position, definition.IsTransparent()); } MarkForMeshUpdate(); if (definition.IsLightEmitter()) { BlockLight light; light.chunk = this; light.chunkPosition = position; light.blockDefinition = definition; lights.Add(light); } }
private void FlushBlockRemoval(ChunkSubspacePosition position, BlockDefinition definition, BlockDefinition prevDefinition) { PushTransparencyCacheToAdjacentBlocks(position, definition.IsTransparent()); if (prevDefinition.IsLightEmitter()) { BlockLight light; light.chunk = this; light.chunkPosition = position; light.blockDefinition = prevDefinition; lights.Remove(light); } needsMeshUpdate = true; }