Technici4n / Modern-Dynamics

Modern item and fluid transport Minecraft mod.
GNU Lesser General Public License v3.0
20 stars 12 forks source link

Seemingly Missing Textures / NullPointerException when running the mod in combination with Sodium #80

Closed ChaoticByte closed 1 year ago

ChaoticByte commented 1 year ago

Today I tried this mod and observed the following:

2023-06-06_21 58 35

I was playing with several mods on Minecraft 1.19.2, but could reproduce the issue with just the following three mods:

After disabling Sodium, the pipes and cables rendered correctly.

Here is a excerpt from the Minecraft log:

[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:fluid_pipe#waterlogged=true': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:hv_cable#waterlogged=true': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:item_pipe#waterlogged=true': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:ev_cable#waterlogged=true': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:mv_cable#inventory': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:item_pipe#inventory': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:hv_cable#waterlogged=false': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:superconductor_cable#waterlogged=true': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:mv_cable#waterlogged=false': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:superconductor_cable#waterlogged=false': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:lv_cable#waterlogged=true': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:mv_cable#waterlogged=true': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:lv_cable#waterlogged=false': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:ev_cable#waterlogged=false': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:lv_cable#inventory': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:ev_cable#inventory': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:superconductor_cable#inventory': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:item_pipe#waterlogged=false': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:hv_cable#inventory': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:fluid_pipe#waterlogged=false': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null
[21:46:34] [Render thread/WARN]: Unable to bake model: 'moderndynamics:fluid_pipe#inventory': java.lang.NullPointerException: Cannot invoke "net.fabricmc.fabric.api.renderer.v1.Renderer.meshBuilder()" because the return value of "net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer()" is null

I'm don't know how all this Rendering API stuff works, but I guess that Sodium is overwriting net.fabricmc.fabric.api.renderer.v1.RendererAccess.getRenderer(), making it unusable for this mod. Maybe there is another method to get the current renderer (when detecting Sodium)?

shartte commented 1 year ago

Indium is required when using sodium.

ChaoticByte commented 1 year ago

Thank you for the quick reply :) Have a nice day!