BuildCraft|Core

BuildCraft|Core

7M Downloads

7.2.x Option "(do not) excavate" not working in filler (fill mode)

dima74 opened this issue ยท 14 comments

commented

Thank you for the wonderful mod!
In filler block there is an option "(do not) excavate". Regardless of its value filler still removes blocks (in fill mode), for example red tulip. Here is a video: https://youtu.be/UHrj9sI63-k (Or, maybe, more clear video: https://youtu.be/zHwPkpx1hUo)

commented

in that video i don't see both breaking blocks, they are so close together it's impossible to tell what filler actually broke the block. can you please try again with seperate ones who are not close together nor active at the same time?

commented

I twice opened the inventory of both fillers, initially there were two items in both and at the end one item in both. But OK, I am going to create a new video. (Thank you for answer!)

commented

Here is new video: https://youtu.be/zHwPkpx1hUo

commented

well that second video does indeed show that it breaks blocks while it shouldn't have done that

your first video only showed that both placed 1 in the world but they shared the same working area so it could have been that both where broken by filler 1 while both placed one down

commented

Did you try this with normal blocks, like dirt? Flowers are in a special category of blocks.

commented

@AEnterprise
Thank you for answer!

but they shared the same working area

No, they didn't. I placed markers on nearby blocks and I didn't click on them, so they didn't join.
@SandGrainOne
Yes, I tried, It also didn't work, but a little differently. Regardless of its value filler doesnt't removes blocks (in fill mode). Video: https://youtu.be/6ccC_HiJANo

commented

yes in this case the filler is suposed to not break the blocks. you are asking the filler to fill the area with stone, but it's already filled with stone so it doesn't break the stone cause that would be pointless

it did do that with the tulips as it seems the filler coniders them air blocks that can be ignored when placing blocks (like with grass), after it placed the tulip itself it knows the block is ok so removed it from the iterator considering it done

commented

I didn't understand a bit, can you please explain:

after it placed the tulip itself it knows the block is ok so removed it from the iterator considering it done

commented

basicly it first checks if it needs to place a block, in case of the flowers it considered them air so not the block you specified so it's on the fillers todo list

once it placed the block (flower in this case) it knows said position is ok because it just placed the block and removes it from the list, it doesn't check nor care about that position anymore unless it gets restarted (replaced, chunks relead before it's complete, ...)

that's why it only removed and placed the flower once instead of in a loop because it keeps thinking it's air

commented

I understand, thank you for answer!

commented

well you are powering both fillers and one of them is set to excavate so that will indeed break the blocks as it's suposed to

commented

Hm, but both fillers break blocks, is it really correct? (Thank you for quick answer!)

commented

pinging @AlexIIL for this:

this only heapens with special non solid blocks like flowers due to the blueprint code first checking if it's an air or non solid ignorable block before matching the block to place with it. I remember working on this code with spacetoad and this was done for performace reasons

can we split code it first only checks if it's air, then if it matches and only then check if the block should be ignored or not? that would fix this but from what i remember that would require some internal blueprint rewriting

commented

OK, thank you