asiekierka / PrestonMC

The worst Minecraft block compression mod
2 stars 1 forks source link

Loss of items when crafting from simple storage advanced remote #11

Closed KTev closed 6 years ago

KTev commented 6 years ago

When trying to craft stacks by shift clicking items are taken from inventory but no resultants are returned. Video is of cobble to single compressed cobble, but was first noticed with iron ore and confirmed with coal ore. The only inventory attached to network is a wooden colossal chest 16^3. (Originally, noticed with a 3^3.)

Pack being used is World of Dragons 9.3.82 by Kreezxil Forge 14.23.4.2729 Preston 0.3.3 Simple Storage Networks 1.12.2-1.2.7

https://youtu.be/0QivymVj49I

asiekierka commented 6 years ago

Note that this only happens when shift-clicking. Using normal left-clicking, and extracting the compressed items one-by-one, there is no issue. This makes me believe the issue may lie on SimpleStorageNetwork's side, as the IRecipe-side handling should not be different for left-clicking and sneak-left-clicking on my side.

Lothrazar commented 6 years ago

I can replicate this in dev. I'm not sure why, but when i use

IRecipe r = CraftingManager.findMatchingRecipe(matrix, player.world);

and then log out

r.getRecipeOutput()

It tells me

1xtile.air@0

So its weird that regular crafting works without shift clicking

Lothrazar commented 6 years ago

Sorry if the code isnt perfect, i havent refactored too much of it since adopting from previous author:

I added a "partial fix" where i halt if recipe tells me output is empty. But even when this happens, single clicks still craft . and shift-crafting works in vanilla table

so im confused

https://github.com/PrinceOfAmber/Storage-Network/blob/118b43adcb4f0e2ebbad3529783bd5b4b037643a/src/main/java/mrriegel/storagenetwork/gui/ContainerNetworkBase.java#L69

EDIT: I double checked the NBT data of the input block. for the Single compressed cobble it looks fine {stack:{id:"minecraft:cobblestone",Count:1b,Damage:0s},level:1}

EDIT2: found a fix on my end anyway!

Lothrazar commented 6 years ago

For anyone interested in the future, the answer was

Do not use recipe "getRecipeOutput()"

Instead use

recipe.getCraftingResult(matrix);