Aqua Acrobatics compat.
Carvercarver1 opened this issue ยท 8 comments
Creating an issue here for the compat bug.
@jbredwards Here's some more information if you have any ideas. There appear to be two issues here: the bubble column not rendering the fluid face despite extending BlockStaticLiquid
, and water coloring being different.
- The source code for the bubble column block is here.
- Because a lot of 1.12 mods made the (correct at the time) assumption that the
minecraft:water_still
is blue, replacing it with the 1.13-style white one causes a lot of compatibility issues. What I wound up doing is using a blue 1.13 water texture forminecraft:water_still
and manually overridingBlockFluidRenderer
so it usesaquaacrobatics:water_still
, which can be recolored. I assume one of your ASM tweaks undoes that override and that's what causes the color change.
As you know, I'm quite impressed by your mod, so I'm happy to add compatibility where needed.
@Carvercarver1 This mod does not change any textures, or any block colors. One thing this mod does do though is change the vanilla fluid rendering system to the one used by modded fluids, which causes light & shading to behave how it would with normal blocks (this is not the main reason I do this, but is probably what the described change in water color is).
@embeddedt As mentioned above, this mod bypasses BlockFluidRenderer
by generating a new forge ModelFluid
for each BlockLiquid
, and by changing the render type to EnumBlockRenderType.MODEL
. My best guess on what's causing the issue is that your blockstate & mapper could be clashing with my generated ones during runtime. Try removing them and see if that works, this shouldn't cause any issues (while also fixing this one), as they're not used by BlockFluidRenderer
.
One thing this mod does do though is change the vanilla fluid rendering system to the one used by modded fluids
There's a problem here and I'm not sure how to fix it.
A lot of 1.12 mods assume that the water texture is blue (like it was in vanilla 1.12). Even though Forge fluids have an option for specifying the color, a lot of mods don't respect that in the case of water. They just render the texture assuming it already has a color.
The only solution I found to preserve mod compatibility was to replace the vanilla texture with an already-colored blue one from 1.13, and modify BlockFluidRenderer
to use a separate texture. However, this now causes issues with your mod, as you're pulling the original minecraft:water_still
texture from the Forge fluid (correctly), and while modifying the Forge fluid to use the aquaacrobatics:water_still
texture and appropriate colors would fix the issue, it would break all the other mods.
I suppose one option is for me to modify ModelFluid
to use different textures if the fluid is water. This may end up being the path I take.
Why not replace the FluidRegistry.WATER
texture strings directly? That's what I did with NJARM for its 1.13 water colors.
A lot of mods don't respect the color I put in FluidRegistry.WATER
. If I put a white texture there, and set the color field to be blue, some mods just render the texture and don't actually use the color I provided.
Just did some testing, and there is definitely a problem with the water colors. I also found the actual cause of the missing model, and it's this. The forge fluid rendering system relies on some special block state properties to work correctly (these are normally handled by BlockLiquidBase
). I've come up with a fix for the missing model that can be implemented, sorry for being stupid :p
@Nonnull
@Override
protected BlockStateContainer createBlockState() {
return Loader.isModLoaded("fluidlogged_api")
? new BlockStateContainer.Builder(this).add(LEVEL, DRAG).add(BlockFluidBase.FLUID_RENDER_PROPS.toArray(new IUnlistedProperty<?>[0])).build()
: new BlockStateContainer.Builder(this).add(LEVEL, DRAG).build();
}