宁静与切片兼容

宁静与切片兼容

修复灌溉逻辑并恢复洒水器音效

游戏机制

一个小型兼容模组,用于在 Create Slice & Dice 与 Serene Seasons 同时使用时,恢复洒水器的正常行为。

展示

不兼容原因
  • 两个模组都向 Minecraft 的 isRainingAt() 方法注入了 mixin。 每个 mixin 都针对 @At("HEAD"),使用相同的优先级,并标记为 cancellable。

    当存在多个具有相同优先级的可取消 HEAD 注入时,Mixin 会按照其 mixin 配置的加载顺序依次应用它们。最先注入的回调会最先执行,并且可以取消该方法,从而阻止后续注入运行。

    在这种情况下,Serene Seasons 的 mixin 配置更早被解析,因此其注入会先被应用并取消该方法。结果是 Create Slice & Dice 的注入永远不会执行。

  • 由于 Create Slice & Dice 依赖 Minecraft 的原版天气系统来触发与下雨相关的音效,在 Serene Seasons 中覆盖原版天气逻辑会导致洒水器无法播放其预期的下雨音效。

本模组如何修复这些问题
  • 此兼容模组不直接注入 Minecraft 的 isRainingAt() 方法,而是将 Create Slice & Dice 的洒水器检查集成到 Serene Seasons 的 isRainingAtHook() 中,确保两个模组的逻辑都能被一致地求值。

  • 为恢复缺失的音频,该模组还会直接在洒水器的位置播放相应的下雨音效,从而绕过对原版天气系统的依赖。