跳到正文

ObserverLib

作者:HellFirePvP

一个支持通用区域观察的前置库模组。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

ObserverLib 是一个前置库模组,可用于在潜在的大范围内可靠地观察方块变化,且对性能的影响极小。

 

该前置库可公开使用,主要面向 1.13+ 的 Astral Sorcery 使用。

 

本质上,这个模组允许你为特定区域注册一个观察者 ——它最终观察什么取决于具体实现。世界中其观察区域内发生的变化会被传递给该观察者。观察者随后可以自行决定这些变化的含义;它们是否会使观察者的状态失效或有效。例如,结构现在是否已经完成。

 

实际检查事物是否有效的调用方式是,在相关位置查询 ChangeSubscriber,然后询问其当前状态是否有效。

 

为什么这比通常只是反复检查一个大范围更好?如果你想观察的区域大于一个区块怎么办?如果你必须检查的另一个区块被卸载了怎么办?为了确保没有任何变化且结构完好,模组将不得不加载该区块并检查方块。如果这导致大量区块加载和卸载,可能会成为问题。ObserverLib 的实现确保你可以放心,传递给你的 notifyChange 实现的变化包含所有必要信息,以确保你所观察的内容仍然有效或无效。

 

一个用于检查结构是否正确建造的示例实现可以在这里看到。该检查不会总是检查结构组件的所有内容,而是确保跟踪不正确/不匹配的位置,并且仅基于与匹配器预期不符的差异来工作。

 

如果你有兴趣将其用于自己的项目,可以从这里的 maven 获取: https://maven.hellfiredev.net/hellfirepvp/observerlib/observerlib/ 

 

如需进一步解释和详细信息,欢迎在 AstralSorcery 的 discord 上提问:https://discord.gg/q37VRcT

评论

登录后评论和评分

HellFirePvP 的其他作品

查看全部 →