Initial Light Coordinator

基本信息

com.mitchej123.supernova.light.InitialLightCoordinator —— 包私有 final class(无 public),协调区块的初始光照生成与发布。

构造

InitialLightCoordinator(LightQueue skyQueue, LightQueue blockQueue,
                        Publisher publisher, LongFunction<Chunk> loadedChunks)

两个队列分别对应天光与方块光,外加发布器与区块取用函数。

内部结构

成员 行 说明
publisher 27 类型 Publisher
static final class Generation 134 一代光照生成的上下文
interface Publisher 198 发布接口

Publisher 为何是接口

源码注释(第 197 行)原文:

An interface rather than a direct SupernovaChunk cast, so the coordinator needs no mixin-applied chunk.

即用接口而非直接强转 SupernovaChunk, 好处是协调器不必依赖 mixin 注入后的具体 chunk 类型 —— 解耦了它与 Mixin Chunk 的实现。

实现方

World Light Manager 里的内部类 ChunkLightPublisher implements InitialLightCoordinator.Publisher。

相关条目

源码

  • src/main/java/com/mitchej123/supernova/light/InitialLightCoordinator.java