本站为非官方 Pylon 文档站,大量内容均为 AI 生成·前往官方文档站● ● ●This is an unofficial Pylon documentation site, most content is AI-generated·Visit Official Docs● ● ●中文开发者交流·加入 QQ 群● ● ●本站为非官方 Pylon 文档站,大量内容均为 AI 生成·前往官方文档站● ● ●This is an unofficial Pylon documentation site, most content is AI-generated·Visit Official Docs● ● ●中文开发者交流·加入 QQ 群● ● ●
Pylon 中文文档
开发文档参考多方块

多方块状态

了解如何检查和管理多方块的状态

最后更新时间

开发多方块时,经常需要查询或监听其状态。Rebar 主要跟踪两个关键信息:

  • 多方块是否已成型?
  • 多方块的各个部分是否都已加载?

第一个条件在所有组件都放置到位时为 true;第二个条件则要求每个组件所在的区块都已加载。之所以要区分这两者,是因为多方块可能横跨多个区块——和普通方块不同,运行某些逻辑前你需要确保整个结构都已就绪。

和多方块的其他组件交互之前,务必先检查多方块是否完整且完全加载。调用 isFormedAndFullyLoaded() 即可:

@Override
public void tick() {
    if (!isFormedAndFullyLoaded()) {
        return;
    }

    // Ticking logic here
}

你还可以利用 onMultiblockFormedonMultiblockUnformed 在多方块成型或解体时执行自定义逻辑:

@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 覆盖、虚影方块等功能。