ImmersivePetroleum
ImmersivePetroleum copied to clipboard
Turbine and Alternator combo visual bug
Steam Turbine and Alternator placed on one layer block platform. Sometimes gasoline gets into the steam lines (some other bug I presume). Still outputs but severely lags client.
most probably an optfine issue i would say, sometimes it is an desync between client and server when using sponge can you try out to reproduce this without them or are you without them?
Why on earth is this report here? Both of those multi-blocks are from a different mod. You are far more likely to receive support from the GitHub for the mod in question. https://github.com/FerroO2000/Immersive-Tech
@RobertSnype, can you please verify if this is the same bug as https://github.com/BluSunrize/ImmersiveEngineering/issues/2973? If so, this is indeed the right place to report it:
I have isolated the glitch to be caused by ImmersivePetroleum, which is present in all mod packs mentioned in this issue. Removing all mods except IE + IP makes it reliably appear (as reliable as it can get - it's still random after all), removing IP from the pack makes it reliably not appear anymore.
For any Sevtech 3.1.3 users reading this, TL;DR: Try to reduce the number of multiblock structures in the same chunk as the glitched thing. It seems to be sensitive to volume/complexity, not the number of different multiblocks.
Encountered this bug on a sevtech server.
(You can see the places where the pipes connect up, and the hitboxes are fine, but the tower is rendered off-kilter. The other tower has no glitches.)
Based on a suggestion by @Wuestengecko I opened up F3 and looked at the flags on all the blocks in the tower. I noted which blocks in the normal tower had multiblockslave, facing, etc. set to, and then compared it with the glitched tower. Every block in the glitched tower has all fields as their default values: _0multiblockslave: false, _1dynamicrender: false, boolean0: false, facing: north
.
When I build it, it's fine, until I look away. Then, it disappears, and then after looking around a bit more, it reappears in that wrong spot and stays there. It never goes back to normal.
F3+A doesn't fix it. If I break it and re-build it, the same issue occurs. If I log out and log back on, the issue persists. If the server restarts, the issue persists. I'm an admin on the server and downloaded the region file for the region I was in. I created a new world, and then put that region file into it, and I was able to reproduce the problem; I tested breaking it again, and closing/re-opening the world again and it still happened.
After reducing the save file as much as possible, I've discovered that my Tinker's Construct smeltery was causing the issue. A sufficiently large smeltery that overlaps the tower's chunk at all will cause the tower to eventually disappear. Placing the last block of that smeltery makes the tower disappear immediately. Here's the world file; I'm running SevTech 3.1.3.
For that save file, follow these steps to reproduce: 0. Break the tower if needed, and then place the block you broke back in its correct place.
- Form the muliblock distillery with a hammer.
- Stand on the diamond blocks, and look away from it for a little bit. Look around in that direction, move around a bit, occationally glance back.
- Once the distilllery has turned invisible, stand on any of the gold blocks, and it should reappear in the wrong place. There are many other places to look at it where it does this, but those two spots are the most reliable way. The save file's smeltery is on the 2nd floor in the same chunk as the tower. It shouldn't be too hard to find.
I spent a lot of time trying to reduce the number of mods, and/or remove sevtech entirely. I was able to strip almost everything out, but after I was down to just tinker's construct, immersive engineering, justEnoughIDs, and immersive petroleum, ip started throwing exceptions while reading the file:
[02:01:22] [Server thread/ERROR] [FML]: A TileEntity type flaxbeard.immersivepetroleum.common.blocks.metal.TileEntityPumpjack$TileEntityPumpjackParent has throw an exception trying to write state. It will not persist. Report this to the mod author
java.lang.ArithmeticException: / by zero
at flaxbeard.immersivepetroleum.api.crafting.PumpjackHandler.getOilWorldInfo(PumpjackHandler.java:141) ~[PumpjackHandler.class:?]
at flaxbeard.immersivepetroleum.api.crafting.PumpjackHandler.getFluid(PumpjackHandler.java:70) ~[PumpjackHandler.class:?]
at flaxbeard.immersivepetroleum.common.blocks.metal.TileEntityPumpjack.availableFluid(TileEntityPumpjack.java:88) ~[TileEntityPumpjack.class:?]
at flaxbeard.immersivepetroleum.common.blocks.metal.TileEntityPumpjack.writeCustomNBT(TileEntityPumpjack.java:147) ~[TileEntityPumpjack.class:?]
at blusunrize.immersiveengineering.common.blocks.TileEntityIEBase.func_189515_b(TileEntityIEBase.java:48) ~[TileEntityIEBase.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75820_a(AnvilChunkLoader.java:383) [aye.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.func_75816_a(AnvilChunkLoader.java:174) [aye.class:?]
at net.minecraft.world.gen.ChunkProviderServer.func_73242_b(ChunkProviderServer.java:202) [on.class:?]
at net.minecraft.world.gen.ChunkProviderServer.func_186027_a(ChunkProviderServer.java:230) [on.class:?]
at net.minecraft.world.WorldServer.func_73044_a(WorldServer.java:1007) [oo.class:?]
at net.minecraft.server.MinecraftServer.func_71267_a(MinecraftServer.java:408) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.func_71267_a(IntegratedServer.java:252) [chd.class:?]
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:170) [chd.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
There's exactly 64 copies of that exception. And then on the first tick, it finally dies with:
[02:01:23] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception
net.minecraft.util.ReportedException: Exception ticking world
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:762) ~[MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) ~[MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185) ~[chd.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_231]
Caused by: java.lang.ArithmeticException: / by zero
at flaxbeard.immersivepetroleum.api.crafting.PumpjackHandler.getOilWorldInfo(PumpjackHandler.java:141) ~[PumpjackHandler.class:?]
at flaxbeard.immersivepetroleum.api.crafting.PumpjackHandler.getFluid(PumpjackHandler.java:70) ~[PumpjackHandler.class:?]
at flaxbeard.immersivepetroleum.common.blocks.metal.TileEntityPumpjack.availableFluid(TileEntityPumpjack.java:88) ~[TileEntityPumpjack.class:?]
at flaxbeard.immersivepetroleum.common.blocks.metal.TileEntityPumpjack.writeCustomNBT(TileEntityPumpjack.java:147) ~[TileEntityPumpjack.class:?]
at blusunrize.immersiveengineering.common.blocks.TileEntityIEBase.func_189517_E_(TileEntityIEBase.java:66) ~[TileEntityIEBase.class:?]
at net.minecraft.network.play.server.SPacketChunkData.<init>(SourceFile:52) ~[je.class:?]
at net.minecraft.server.management.PlayerChunkMapEntry.func_187272_b(PlayerChunkMapEntry.java:157) ~[ot.class:?]
at net.minecraft.server.management.PlayerChunkMap.func_72693_b(SourceFile:165) ~[ou.class:?]
at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:227) ~[oo.class:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:756) ~[MinecraftServer.class:?]
... 4 more
Looking at the stack, and looking at the code, I'm guessing that getTotalWeight(...) is returning 0, and then that 0 is used in a modulus (%
), which counts as divide by zero. Removing a mod that corresponds to the biome of the test world would make getTotalWeight's invalid biome checks fail, returning 0. I don't know where I would look to try and fix the biome data, if it's even fixable.
I took a look at what the tinker smeltery code is doing. Completing a tinker smeltery does make a multiblock structure, though it shouldn't render anything special as long as there's no fluids inside. It's particularly interesting that the size of the smeltery multiblock matters. I wonder if having too many multiblocks in one chunk is causing something weird to happen?
A friend of mine is going to check the server tomorrow and see if the rendering bug appears for him too, to rule out graphics card / OpenGL as a possible issue. I'll report back when he does.
If there's any other debugging steps you want me to do, let me know! I've mucked around with minecraft mod development before, I know how tricky it can be to reproduce this stuff.
Edit: Thinking about this some more, it might be a separate bug. It's not a combo, it's a different rendering issue. I can submit this as a new issue, if you want.
You surely should, the original issue is two years old
i know this have nothing to do with the issue, but i think the looks of some super multistructure like this could be sick!
Why on earth is this report here? Both of those multi-blocks are from a different mod. You are far more likely to receive support from the GitHub for the mod in question. https://github.com/FerroO2000/Immersive-Tech
It might be because we tend to group them together, and IP/IT/IE all incorrectly labeled as being the same mod in some versions.
Could very well be a problem relating to the IE API in which case could be IE's problem, so not sure where to post it in my case since I get IP render glitch with tower, IT with alt/boilers, IE with arc furnace, all at the same time. To me it sounds like an API issue, but I could be wrong since I have no idea how things work under the hood. But....!
Possible workaround, for some people anyway: (this is a general one for all IP/IE/IT):
since backports are usually not a thing, a fix most likely wont come into many multiplayer server scenarios. In that case, i have found that simply smacking the origin block (the one you used the hammer on the construct the multiblock) will often fix the issue. -or- You can open the GUI (if it has one) and that usually also fixes it. A possible automatic way to do this would to use an autonomous user emulator to emulate the click, chained to an online detector that way it only smacks it once, when you log in. If its single player, a command block might be able to do something better. This problem also seems (in the version I am using 0.12-98 along with 1.1.10 IP/1.8-94 IT), to go away with time or when you walk on top of or near the machine's sides. There could also be an issue with Fastcraft and BetterFps but I have not isolated any yet (not using fastcraft, not sure about betterfps because I disable most everything with it).