Client-only spread is incredibly inefficient. causes visible lockups.
JaSpr opened this issue ยท 4 comments
I've had this issue on multiple servers where I am only running the mod locally. The algorithm being used to spread and balance the grid could use some work. Sometimes, I've had the game physically lock up and have to be force quit, but that doesn't happen much anymore (in 1.12.2). Lately, it just locks up for a couple of seconds.
That said, I think the algorithm just needs some refactoring. I was hoping to work on it today, but when I run the client through gradle, then connect to a local vanilla server, the crafting tweaks buttons don't actually do anything, so I'm unable to test out any improvements.
does this happen in 1.19.x as well or no?
I always check mods github before installing them so I won't encounter compatibility or errors or crashes ...
so just curious if it still present in 1.19.x versions as well?
thanks in advance <3
Server-side doesn't have to rely on actual slot movements and can manipulate stacks in slots directly, which can be done in one go and doesn't require any communication until after everything is already done. Client-side would also feel instant if implemented in a non-lazy way, since it'd be one packet then instead of [way too many].
Yeah, I think I remember thinking it's crazy inefficient but was lazy at the time (since the client-only implementations are less frequently used). I'm busy with other stuff right now but if I remember correctly it's placing items one by one when it could just make use of Vanilla's inbuilt spreading.
As to why it won't work on a Vanilla server, I don't know. It should only enable server-side mode if the server claims to have Crafting Tweaks installed during handshake (which shouldn't even be possible since that handshake doesn't happen on Vanilla).
I've always just set the TEST_CLIENT_SIDE
boolean in CraftingTweaks.java
to true, that way it's possible to test without running a server at all.