存储格式 SPI

基本信息

属性 值
工厂接口 com.cardinalstar.cubicchunks.api.world.storage.StorageFormatFactory
存储接口 com.cardinalstar.cubicchunks.api.world.storage.ICubicStorage
默认格式 ID cubicchunks:anvil3d(StorageFormatFactory.DEFAULT)
默认实现 com.cardinalstar.cubicchunks.server.chunkio.RegionCubeStorage
本地化名 cubicchunks.gui.storagefmt.anvil3d
注册时机 CubicChunks.preInit → registerAnvil3dStorageFormatProvider()(CubicChunks.java:122)

功能

模组允许替换立方区块的存档格式。StorageFormatFactory 定义格式的注册与工厂契约,ICubicStorage 定义实际的读写接口。

StorageFormatFactory.REGISTRY 是一个注册表(api/registry/Registry),DEFAULT 常量固定为 new UniqueIdentifier("cubicchunks:anvil3d")(api/world/storage/StorageFormatFactory.java:37)。

主类在 preInit 阶段注册唯一的内置实现——私有内部类 DefaultStorageFormatFactory(CubicChunks.java:278-306):

  • setRegistryName(StorageFormatFactory.DEFAULT) 并 setUnlocalizedName("cubicchunks.gui.storagefmt.anvil3d")(:285-286)
  • getWorldSaveDirectory(ISaveHandler, WorldServer) 把存档根目录解析为 Path,若 worldServer.provider.getSaveFolder() 非空则再拼接该子目录(:289-296)
  • provideStorage(World, Path) 返回 new RegionCubeStorage(path)(:303-304)

数值

数值名 值 来源
默认格式 ID cubicchunks:anvil3d StorageFormatFactory.java:37
本地化键 cubicchunks.gui.storagefmt.anvil3d CubicChunks.java:285
已注册格式数 1 CubicChunks.java:205
storage_format 配置默认值 ""(空=自动判定) CubicChunksConfig.java:102

交互

触发 行为
模组 preInit 把 cubicchunks:anvil3d 格式与其工厂实现注册进 REGISTRY
创建新世界 若 storage_format 为空则自动判定;否则使用指定格式
打开已有世界 继续沿用该世界创建时的格式,不受之后改配置影响(配置注释 CubicChunksConfig.java:100)
其它模组提供自定义格式 实现 StorageFormatFactory 并注册即可替换

相关条目