Hbm's Nuclear Tech - Extended Edition

Hbm's Nuclear Tech - Extended Edition

292k Downloads

Compatibility issues with GTCEu(two errors were found)

freedom-cry opened this issue · 0 comments

commented

When I use HBM1.9.8 with GTCEu (gregtech-1.12.2-2.7.3-beta) in 1.12.2, I found two unpleasant bugs in the game, the first one is when I use GTCEu's Metal Fluid When piped into HBM's fluid container, (any kind, I used a steel drum in the bug report), the game crashes. The second is that when I deploy a mining machine to mine HBM deep minerals in the main world, the game crashes. I've done a preliminary analysis with AI, here are the specific instructions.

Specifically, the crash happens when GregTech's TileEntityPipeBase class calls its isFaceBlocked() method. This method is then called by the fillFluid() method in your mod's FFUtils class, and ultimately bubbles up from an update to an HBM Barrel entity.
The root cause appears to be that somewhere in the isFaceBlocked() implementation, GregTech is retrieving a null reference and attempting to use it without null checking.
As GregTech and HBM both involve fluid handling functionality, it seems there may be an incompatibility or lack of compatibility between how your mod defines fluid-related block or entity classes compared to GregTech's expectations.
My suggestion would be to take a closer look at the interfaces between the two mods in this area, specifically how block/entity types are defined and passed between them. Adding proper null checks in GregTech's code would also help prevent further crashes.

When using a GregTech mining machine to mine blocks added by HBM, a ClassCastException is thrown, causing the game to crash.
Based on the crash report, it seems this is happening because GregTech is trying to cast the HBM block object to the GregTech block class, but they are incompatible types.
Specifically, the crash occurs in the MinerLogic class of GregTech API, in the getRegularBlockDrops method. This method is called to obtain block drops when mining, but fails when encountering an HBM block.

mining_machine_problem.txt
pipe_problem.txt