Litematica (Forge)

Litematica (Forge)

336k Downloads

1.15.2: after "pick last" - further processing happens, even if it's turned off

SunSerega opened this issue ยท 3 comments

commented

https://youtu.be/_FdTSXJoUf0

Looks like vanilla pick block happens with a bit of delay. It can't be because of spigot server, right? (it's basically vanilla, there aren't actually any plugins)

commented

Looks like pickBlockLast will currently actually never cancel further processing, as it wasn't really meant to be used on its own.
image

However since the advanced keybind settings widget allows configuring the behavior, I now changed it (in the 1.12 code) to allow canceling. But the intended use for pickBlockLast was that it would be bound to the vanilla use key, so that it will do an automatic pick block just before using the item and placing the block. Normally if you want to separately pick block, then pickBlockFirst should usually work for that (although not through other schematic blocks obviously...). Do you have a use case where you want to use pickBlockLast without actually placing the block as well?

commented

Well, i'm not sure. I didn't actually think of using RMB for both picking block and placing it at the same time... I tried setting pick last on MMB because i found i use pick last more often then pick first.

But when i use vanilla pick block - i usually first check if it has picked (e.g. i have it in inventory), before placing.
Well, i should first try playing with RMB on pick last, before saying anything on usefulness.

commented

Yep the one downside of the automatic pick block last is that you often only notice that you have ran out of the required block when you place whatever else was in your hand, since the pick block failed.

In the past couple of days I've been considering changing the Cancel further processing option in malilib from the simple true/false into something like Never, Always, On Success, On Failure. Then I could modify my keybind callbacks to indicate whether the action was successful or not, instead of whether or not they want further processing to be canceled. That would allow the cancellation behavior to be a bit more flexible, and it would also allow the user to configure it for each hotkey if they so choose. So in this case the pick block could indicate if it was successful, and then the further processing ie. in this case placing the block could be cancelled only if the pick block failed.