TerraFirmaCraft

TerraFirmaCraft

2M Downloads

Fluid API Port Issues

alcatrazEscapee opened this issue ยท 1 comments

commented

A lot of TFC is still relying on #minecraft:water functionality. Some identified issues:

  • TFC Magma blocks delete waterlogged blocks, other fluids
    • Likely dropping support for salt water + vanilla soul sand/magma, and only re-implementing TFC magma (bubble up, push down)
  • Lots of reliance on #minecraft:water, should switch to other tags or fluid API if possible.
    • This was done for all fluids that don't need to exist in the world, and have very basic representations when in world.
  • Need to test that we don't break any behavior, especially if we start removing fluids from #minecraft:water
    • There are too many things in vanilla that still rely on this tag, that aren't patched out. Nobody should really be using this anyway, and it doesn't really harm us to keep it in for this extra functionality.
  • Things that are already broken from the API:
    • Swimming in salt water does not make any sounds
    • Salt water (and all fluids) pushes harder than water (Forge bug)
    • Ambient swimming, splashing particles, sounds, etc. don't exist in salt water
    • Splashing sound when moving between fresh + salt water (fish do this a lot around rivers)
      • All of the above were fixed by mixin into Entity, which just hack FluidTags.WATER queries, to treat any water-like fluids identical to water. This fully makes salt water + water have identical behavior.
    • Most fluids in-world are not transparent, except for water, which is
    • Molten fluids don't give off light
    • Molten fluids don't damage entities
    • Coral doesn't hydrate itself
  • Potentially use the WATER type for salt water to fix inconsistencies?
    • This can't be done, as it will break too many things that make water + salt water distinct (for example, translation keys of FluidStacks will have to use "Water", not "Salt Water" instead. Not viable.
commented

This is essentially complete - the one functionality we're missing (lava-like molten fluids) we don't particularly care and is more on further work on fluids than issues with the existing API port (of which there are still plenty...) May revisit in 1.21