ochotonida / artifacts

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[1.19.2] Snorkel durability loss does not respect non-water related air loss

NyanMC opened this issue · comments

Describe the bug
When configuring the Snorkel to use durability when providing water breathing, it only loses durability when underwater. While this is fine for vanilla behavior, it causes issues with mods such as Thin Air, This mod causes the player to lose air at extreme Y levels or in other dimensions. In these cases, the snorkel will still not use any durability despite its effect being useful in the given moment.

Two separate ideas on how to fix this:

  1. Integrate with Thin Air specifically to check when that mod is causing the player to lose air
  2. Use some other method to check when the player is supposed to be losing air, one which accounts for other mods taking air in other scenarios (if that's even possible).

To Reproduce
Steps to reproduce the behavior:

  1. Change the Artifacts config so that the Snorkel uses durability
  2. (optional) Turn on advanced tooltips to see the exact durability of the Snorkel
  3. Equip a Snorkel and go above y=128 or below y=0
  4. Check the durability on the Snorkel. It will not deplete, even though it is supposed to.

Game Environment
Thin Air was used as an example of a mod which causes the player to lose air outside of water. Any other mod which does the same can also be used.

  • Artifacts: 5.0.4
  • Forge: 43.3.5
  • Architectury API: 6.5.85
  • Cloth Config API: 8.3.103
  • Curios API: 5.1.4.2
  • Thin Air: 4.0.0
  • Puzzles Lib (Thin Air dependency): 4.4.3

Unfortunately there's no consistent way to check whether you're losing air while it's also being replenished by the water breathing effect or something similar. The only way to fix this would be to add compatibility checks for every mod that allows you to lose air while not underwater.
Because the durability config options were removed after 1.19.2, in part due to issues like this and maintainability concerns, fixing this is unfortunately not a priority.