Mekanism

Mekanism

111M Downloads

Fluidic Plenisher and Lava in large areas

Discomanco opened this issue ยท 21 comments

commented

Issue description:

The Fluidic Plenisher doesn't place lava properly. It places it likes water in lines, and "expects" it to autofill like water would do.
There was another issue, quite old (#4271), but you mentioned you couldn't reproduce it.
I did manage to reproduce it in a world with only Mekanism, JEI and WorldEdit (to easily make the testing hole), and ends up like this:
2017-06-25_02 13 25
Is also an issue on 1.11.2.
2017-06-25_02 46 06
In both pictures, the Fluidic Plenisher says that it is done.
I know 1.10.2 is an unsupported version now, but I hope it gets fixed there too.

Edit This is how it looks when the Fluidic Plenisher is just 1 block above ground (1.11.2):
2017-06-25_04 10 50
The lighter lava blocks are still blocks, the rest are flowing

Steps to reproduce:

  1. Get a very large, flat area (tested with a 75r 80h cylinder)
  2. Place the Fluidic Plenisher in the middle, more than 3 blocks above ground. Provide it infinite power and lava
  3. Watch as it does around 3 big lines of lava, and "expects" it to autofill in, like water would.

Version (make sure you are on the latest version before reporting):

Forge: 12.18.3.2221 // 13.20.0.2345
Mekanism: 9.2.2.301 // 9.3.2.307
Other relevant version: WorldEdit 1.10.2-6.1.4 // 1.11-6.1.6 (I did test without WorldEdit+CUI too)
JEI
WorldEdit CUI

commented

Previous was indeed closed as cannot reproduce, but in the mean time I could reproduce it if the area is large enough with only Mekanism installed.
The fluidic plenisher has a limited amount of blocks it can place after which it thinks it's "done". With the use of water it's normally enough, but for lava and other non spreading fluids it's not enough.

commented

It is understandable that it has a limit for how many blocks it can place, so an unchecked Plenisher doesn't cover a 1000x1000 with lava.

I don't mind there being either a block, or range limit, as long as it properly places everything correctly within that area (say a 50x50), because then I can just move it a bit, and start it again

commented

Exactly, my reaction wasn't supposed to defend the way it works, just explaining why it happens ;) Best would be that it could fill a (for example) 50x50x10 area completely without those weird lines happening. Thus limiting the available blocks to fill to 2500 and making it predictable for the user which range will be filled.

--Edit--
There's a config value for how much blocks it can place called "general.maxPlenisherNodes". The default value of it is 4000.

commented

That is a good point, and a good workaround for now :)

Next step is to figure out how large of an area it can actually work with :D

commented

I'm currently looking at the code, it hasn't a limit on which range it can work with. I'll look into adding a configurable range limit which defaults to 50 or so.

commented

I did notice when I tried to place it higher in the air (above surface, with no nearby walls/obstructions), it would just continue placing lava in a long line, without ever stopping until it couldn't load another chunk (I assume at least). At least it just went on for a couple of hundred blocks

commented

I'll give some technical explanation how it works:
It scans the block underneath it, if it can place there, it checks all 6 sides of it if it can place fluid there.
If it can place fluid there it's added to a list of blocks to replace.
On the next pass it looks at which blocks can be replaced (for example, the north one is the first result).
The north one gets replaced and it surrounding blocks get checked.

This goes on until the limit of 4000 is reached.

commented

1.10.2 - we have a small modpack and server that will make the next jump to 1.12 :)

commented

@lukas45 Which version do you mainly use? I might have a solution which is workable, would love a real life test. I can hook you up with a test version with a possible fix.

commented

I mean, I'd say this result looks a LOT better :D
2017-06-28_17 09 11
Took a quick look at the config, and looks like the range config wasn't in yet ^_^
I do wonder tho, if it possible that it would make a square shape, instead of a diamond shape - just to make it easier when re-placing the Plenisher for next round (would it even be easier? The more I think about, the more I don't know)

commented

Zip is the same as the latest version and has a possible fix for the fluidic plenisher, let me know if this works better ;)

As always: please make a backup!

--edit-- Removed link

commented

It was only a fix to make the shape predictable. A configurable limit is not in this version.
I think this is quite a step forward. A square shape is also possible, but I don't know what the general opinion is on that.

commented

This is a huge step forward if you're trying to fill up a very large area with any non-replenishing liquid! This did more than making the shape predictable, since it was near impossible to fill every spot before - closest you would get is moving it 1 line at a time (in which case, why not use a bucket).
And now I just have to pray that it will get applied to 1.10, otherwise I'll have pleasure of using it once it hits 1.12 ^_^

commented

The pull request for 1.11.2 is open with this solution, in the mean time I'm busy with backporting all old fixes to 1.10.2 which is going quite well.

If you're interested in helping testing/debugging the backport, let me know ;)

commented

I'd love to :D
Well, as long as you give me a changelog :3

commented

If you know how to compile a Forge mod:
https://github.com/thommy101/Mekanism/commits/1.10

Else, let me know and I'll hook you up with one

commented

I do not.
And I would still need a changelog to know what to look for

commented

Easiest changelog: 1.10...thommy101:1.10
What to check? just make sure it doesn't crash :) Please make a backup beforehand.
What has changed? Mostly bugfixes

As the code is just online, I'll put a compiled version here.

--Edit-- Removed compiled version

commented

Cheers, I'll test it out later tonight ๐Ÿ˜ƒ

commented

Thanks for handling this @thommy101

commented

My pleasure ;)