立方区块 API

基本信息

属性 值
包路径 com.cardinalstar.cubicchunks.api
API 文件数 36 个 .java(api/ 目录下)
入口工具类 com.cardinalstar.cubicchunks.api.CCAPI
核心接口 ICube、IColumn、ICubeProvider、ICubicWorldServer
立方体边长常量 ICube.SIZE = 16
声明的 apiPackage 空(gradle.properties:93)

功能

api/ 包是提供给其它模组使用的稳定接口层,共 36 个类(另有 api/registry/、api/util/、api/world/、api/worldgen/、api/event/、api/compat/、api/world/storage/ 子包)。

CCAPI 入口

com.cardinalstar.cubicchunks.api.CCAPI(CCAPI.java:20,public final class)提供三个静态方法:

  • getBlockStorage(Chunk chunk, int yLevel) → ExtendedBlockStorage(:24)——按 Y 取出某层的方块/光照存储
  • getLoadedCube(World world, int cubeX, int cubeY, int cubeZ) → ICube(:34)——取已加载的立方体
  • getCube(World world, int cubeX, int cubeY, int cubeZ) → ICube(:40)——取立方体(可能触发加载)

核心类型

类型 位置 说明
ICube api/ICube.java 立方体接口,int SIZE = 16(:55)
IColumn api/IColumn.java 列接口
ICubeProvider world/cube/ICubeProvider.java 立方体供给器
ICubeProviderServer world/api/ICubeProviderServer.java 服务端供给器
ICubicWorldServer api/ICubicWorldServer.java 服务端立方世界
ICubicTicket api/ICubicTicket.java 加载票据
IHeightMap api/IHeightMap.java 高度图
IMinMaxHeight world/api/IMinMaxHeight.java 高度上下限

事件与数据结构

  • 事件基类:api/event/CubeEvent.java、api/event/ColumnEvent.java
  • 坐标工具:api/XYZAddressable.java、api/XYZMap.java、api/XZMap.java、api/IntRange.java、api/util/Box.java
  • 元数据容器:api/MetaContainer.java、api/MetaKey.java
  • 异常:api/util/NotCubicChunksWorldException.java
  • 客户端兼容:api/compat/CubicChunksVideoSettings.java

内部侧另有 mixin/api/ICubicWorldInternal(CompatHandler.java:43 强转为 ICubicWorldInternal.Server 以调用 fakeWorldHeight)与 world/core/IColumnInternal、ICubicTicketInternal、ICubeProviderInternal。

数值

数值名 值 来源
ICube.SIZE 16 api/ICube.java:55
api/ 源码文件数 36 find src/main/java/com/cardinalstar/cubicchunks/api -name '*.java' | wc -l

交互

触发 行为
其它模组 CCAPI.getCube(world, x, y, z) 按立方体坐标取得 ICube
其它模组 CCAPI.getBlockStorage(chunk, yLevel) 取得指定 Y 层的方块存储
监听 CubeEvent / ColumnEvent 响应立方体/列级事件
加载票据(ICubicTicket) 请求某立方体保持加载

相关条目