存储格式 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 并注册即可替换 |
相关条目
- CubicChunk 存储格式 -
RegionCubeStorage的实际落盘实现 - 配置文件 -
storage_format与use_shadow_paging_io