Building Gadgets

Building Gadgets

110M Downloads

[1.3.9] Trying to paste a Draconic IO Crystal causes rendering crash (ClassCastException)

TigerWalts opened this issue ยท 0 comments

commented

Building Gadgets Version
1.3.9

Other Versions
NeoForge 21.1.209
BrandonsCore 3.2.1.307
Code Chicken Lib 4.6.1.524
Draconic Evolution 3.1.3.627

Describe the bug
When attempting to copy and paste a selection containing a Draconian IO Crystal the rendering of the crystal in the transparent preview will cause a crash.

To Reproduce

  1. Place a Draconic IO Crystal
  2. Use the Copy and Paste tool to select a volume containing the IO Crystal
  3. Use the Copy and Paste tool and choose Copy
  4. Use the Copy and Paste tool and choose Paste (and look at a surface)

Expected behavior
No crash

Log Files

java.lang.ClassCastException: class net.minecraft.client.renderer.RenderStateShard$EmptyTextureStateShard cannot be cast to class net.minecraft.client.renderer.RenderStateShard$TextureStateShard (net.minecraft.client.renderer.RenderStateShard$EmptyTextureStateShard and net.minecraft.client.renderer.RenderStateShard$TextureStateShard are in module [email protected] of loader 'TRANSFORMER' @1dcedc93)
	at TRANSFORMER/[email protected]/com.direwolf20.buildinggadgets2.client.renderer.MyRenderMethods$MultiplyAlphaRenderTypeBuffer.getBuffer(MyRenderMethods.java:54) ~[buildinggadgets2-1.3.9.jar%23195!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/codechicken.lib.render.CCRenderState.bind(CCRenderState.java:137) ~[CodeChickenLib-1.21.1-4.6.1.524.jar%23196!/:4.6.1.524] {re:classloading}
	at TRANSFORMER/[email protected]/com.brandon3055.draconicevolution.client.render.tile.RenderTileEnergyCrystal.render(RenderTileEnergyCrystal.java:94) ~[Draconic-Evolution-1.21.1-3.1.3.627.jar%23197!/:1.21.1-3.1.3.627] {re:classloading}
	at TRANSFORMER/[email protected]/com.brandon3055.draconicevolution.client.render.tile.RenderTileEnergyCrystal.render(RenderTileEnergyCrystal.java:37) ~[Draconic-Evolution-1.21.1-3.1.3.627.jar%23197!/:1.21.1-3.1.3.627] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher.setupAndRender(BlockEntityRenderDispatcher.java:90) ~[client-1.21.1-20240808.144430-srg.jar%23192!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher.lambda$render$0(BlockEntityRenderDispatcher.java:79) ~[client-1.21.1-20240808.144430-srg.jar%23192!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher.tryRender(BlockEntityRenderDispatcher.java:104) ~[client-1.21.1-20240808.144430-srg.jar%23192!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher.render(BlockEntityRenderDispatcher.java:79) ~[client-1.21.1-20240808.144430-srg.jar%23192!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/com.direwolf20.buildinggadgets2.client.renderer.VBORenderer.drawRender(VBORenderer.java:359) ~[buildinggadgets2-1.3.9.jar%23195!/:?] {re:classloading}
	at TRANSFORMER/[email protected]/com.direwolf20.buildinggadgets2.client.events.RenderLevelLast.renderWorldLastEvent(RenderLevelLast.java:44) ~[buildinggadgets2-1.3.9.jar%23195!/:?] {re:classloading}

Extra Info
Other crystal blocks may be affected - untested.

May be related to this issue - #106

The crash happens when trying to render the transparent paste preview.

Building Gadgets is assuming that the renderer state's texture buffer is non empty but for some reason it is empty. The empty type cannot be cast to the non-empty type.