OpenBlocks

OpenBlocks

56M Downloads

liquids held back by sponge keep trying to move toward the sponge

Zedrimar opened this issue ยท 10 comments

commented

so when I place a sponge to remove liquids, instead of the liquids staying put, they try to flow towards the sponge and then get removed. maybe have the blocks update only after the sponge is removed?

commented

Hello from dystopian future of almost 2018!

I don't remember why block update was introduced (porting problems?), so I just implemented option b), since:

  • it improves performance (#867)
  • it's more derpy and possibly OP -> more fun.
commented

Why is this a problem? It's how vanilla ones work.

commented

it can cause lag and looks REALLY weird and yeah I realize thats how it is currently in 1.8 but the sponges in open blocks are meant to hold back water or any fluid as long as they are placed in the world.

commented

@nevercast proposed solutions:
a) make there be a soaked/wet sponge and remove the timer for liquid removal
b) send block update in a radius of area affected +1 (or two) only when the block is removed and get rid of the timer for liquid removal

commented

maybe if there was a "Soaked" or "Wet" sponge then this mechanic would make more sense.

commented

I do believe this block used to not cause block updates. This has changed and blocks are notified so water moves again. The issue is that without a block notify you either have to notify all the blocks to update when the sponge is removed or you get gaps in water that stay there when removing the block.

I'm not sure of the intended implementation of this block but any implementation that is different from the current one also has issues. Some of which could be used as an exploit and I wont go in to here. I'm not sure to mark this as bug or intended operation so I'll leave it as an enhancement suggestion.

commented

Further thought I think that the best implementation beyond the current one would be to do a block update after the sponge is removed (As OP suggested) but only to update any liquid type block, and making sure that no neighbours are updated. This is probably the best method.

I'll experiment with this later if no one else does before me.

commented

@nevercast ok thx! :D and yeah the block was intended not to cause constant block updates

also you can leave the sponge on a stick as is as it is better that way since it isn't placed in the world :P

commented

@nevercast also I think that its a good idea to at least start experimenting on a forked version since this issue has been posted for quite some time and it would be nice to finally maybe find a workaround!

commented

@nevercast try making the sponge update all blocks in the radius of where liquids are held back, when it is removed. That may work...