Industrial Foregoing

Industrial Foregoing

95M Downloads

[1.16] Fluid placer overwrites any solid block in front of it with fluid

RealGrep opened this issue ยท 0 comments

commented

DO NOT REPORT AN ISSUE IF YOU HAVEN'T TESTED THE ISSUE WITH THE LATEST VERSION IN CURSEFORGE

Industrial Foregoing Version:
1.16.5-3.2.14.3-9

Titanium Version:
1.16.5-3.2.8.4-10

Crashlog If Applicable (Upload to pastebin/gist):
N/A

The fluid placer will overwrite any block that's in front of it. I rotated one that wasn't facing right, and it deleted the marble under it, then my ID variable store (destroying quite a lot of work lol). Once I figured that out, I had to test it a bit more. And yes, I can delete bedrock with it, as well. It just overwrites the block completely.

When I was looking for anything on this bug here, I noticed:

43c126e

Which was a fix for this issue: #1129

In particular, this line:

} else if (world.isAirBlock(getPointedBlockPos()) || !world.getFluidState(getPointedBlockPos()).isSource()) {

It was just the isAirBlock before, which made sense. But if I follow the logic here, if it's not an air block, it goes to the second part of the short-circuit or. If that evaluates to true, then it will replace the block in front of it with the fluid. It will evaluate to true if it's not a source block. So as long as it's not an air block, and it's not a source block, it will overwrite the block with fluid.

Which means that any block that's not a source block will be stomped hard. RIP my variable store. XD

I assume you need to check if it's a fluid before checking if it's a source block, or at least make sure there isn't a non-fluid block there.

Thanks!