介绍
介绍由机器翻译自 CurseForge 原页面,仅供参考。
ObserverLib 是一个前置库模组,可用于在潜在的大范围内可靠地观察方块变化,且对性能的影响极小。
该前置库可公开使用,主要面向 1.13+ 的 Astral Sorcery 使用。
本质上,这个模组允许你为特定区域注册一个观察者 ——它最终观察什么取决于具体实现。世界中其观察区域内发生的变化会被传递给该观察者。观察者随后可以自行决定这些变化的含义;它们是否会使观察者的状态失效或有效。例如,结构现在是否已经完成。
实际检查事物是否有效的调用方式是,在相关位置查询 ChangeSubscriber,然后询问其当前状态是否有效。
为什么这比通常只是反复检查一个大范围更好?如果你想观察的区域大于一个区块怎么办?如果你必须检查的另一个区块被卸载了怎么办?为了确保没有任何变化且结构完好,模组将不得不加载该区块并检查方块。如果这导致大量区块加载和卸载,可能会成为问题。ObserverLib 的实现确保你可以放心,传递给你的 notifyChange 实现的变化包含所有必要信息,以确保你所观察的内容仍然有效或无效。
一个用于检查结构是否正确建造的示例实现可以在这里看到。该检查不会总是检查结构组件的所有内容,而是确保跟踪不正确/不匹配的位置,并且仅基于与匹配器预期不符的差异来工作。
如果你有兴趣将其用于自己的项目,可以从这里的 maven 获取: https://maven.hellfiredev.net/hellfirepvp/observerlib/observerlib/
如需进一步解释和详细信息,欢迎在 AstralSorcery 的 discord 上提问:https://discord.gg/q37VRcT
评论
登录后评论和评分