Minecraft Forge 1.16 获取方块伤害进度

问题描述 投票:0回答:1

我不知道如何读取 Minecraft Forge 1.16 版本中的区块破解进度。我知道 DestroyBlockProgress 函数和哈希图的变体,但我不知道它是如何工作的。

一个小技巧或一个例子会对我有很大帮助

minecraft-forge
1个回答
0
投票

您可以使用 MinecraftForge.EVENT_BUS 并订阅适当的事件(例如 BlockBreakEvent)来访问这些地图。迭代 HashMap 以查找您感兴趣的块。如果找到该块,请使用 HashMap 检索其进度值。该值的范围通常为 0 到 10,其中 0 表示销毁开始,10 表示该块已完全销毁。

public class BlockBreakProgressListener {
    @SubscribeEvent
    public void onBlockBreak(BlockBreakEvent event) {
        BlockPos pos = event.getPos();
        PlayerEntity player = event.getPlayer();

        if (MinecraftForge.EVENT_BUS.post(new DestroyBlockProgressEvent.Start(player, pos, event.getState()))) {
            int progress = MinecraftForge.EVENT_BUS.post(new DestroyBlockProgressEvent.Update(player, pos, event.getState(), 5));
            System.out.println(progress);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.