开发文档参考多方块
多方块状态
了解如何检查和管理多方块的状态
最后更新时间
开发多方块时,经常需要查询或监听其状态。Rebar 主要跟踪两个关键信息:
- 多方块是否已成型?
- 多方块的各个部分是否都已加载?
第一个条件在所有组件都放置到位时为 true;第二个条件则要求每个组件所在的区块都已加载。之所以要区分这两者,是因为多方块可能横跨多个区块——和普通方块不同,运行某些逻辑前你需要确保整个结构都已就绪。
和多方块的其他组件交互之前,务必先检查多方块是否完整且完全加载。调用 isFormedAndFullyLoaded() 即可:
@Override
public void tick() {
if (!isFormedAndFullyLoaded()) {
return;
}
// Ticking logic here
}你还可以利用 onMultiblockFormed 和 onMultiblockUnformed 在多方块成型或解体时执行自定义逻辑:
@Override
public void onMultiblockFormed() {
RebarSimpleMultiblock.super.onMultiblockFormed();
Bukkit.getServer().broadcast(Component.text("Stonks"));
}
@Override
public void onMultiblockUnformed(boolean partUnloaded) {
RebarSimpleMultiblock.super.onMultiblockUnformed(partUnloaded);
Bukkit.getServer().broadcast(Component.text("Not stonks"));
}onMultiblockUnformed 的参数 partUnloaded:值为 true 表示因区块卸载导致解体,false 则表示有组件被破坏。
覆盖这些方法时,必须调用 RebarMultiblock.super.onMultiblockFormed() 和 RebarMultiblock.super.onMultiblockUnformed(partUnloaded)。
RebarSimpleMultiblock 依赖这两个方法来管理 WAILA 覆盖、虚影方块等功能。