方块
方块数据被分为两部分,类型与状态。这些通过 BlockType
和 BlockState
类表示。方块种类的例子是 minecraft:oak_log
,状态为分类 minecraft:oak_log
和属性 [axis=y]
。
你可以在 BlockType
中通过方法 getDefaultState()
或提供正确的属性映射表至 getState(Map)
方法中获得 BlockStates
对象。
例如,获取 minecraft:oak_log[axis=y]
的状态:
Java
BlockType oakLog = Objects.requireNonNull(BlockTypes.OAK_LOG);
BlockState yFacingOakLog = oakLog.getState(ImmutableMap.of(
oakLog.getProperty("axis"), "y"
));
System.err.println("State: " + yFacingOakLog);
部分方块包含 NBT 数据,它们是通过 BaseBlock
类型表示的。
你可以通过 toBaseBlock(CompoundTag)
方法从 BlockState
获取 BaseBlock
。