CyclopsMC / IntegratedCrafting

Craft stuff in Integrated Dynamics networks
MIT License
7 stars 6 forks source link

Recipe requires air IntegratedCrafting-1.16.5-1.0.13.jar #56

Closed 7eggert closed 3 years ago

7eggert commented 3 years ago

When crafting a recipe where some slots aren't used (except for the last ones), the crafting algorithm does require air to be in the inventory or craftable.

2021-03-22_14 37 42

Also it does not always seem to see all items (I have a golden chest) and it does not usually work unless I select one of the item channels (instead of "All").

Downgrading to IntegratedCrafting-1.16.4-1.0.11.jar did help

AutoDropper-1.16.3-7.0.0.jar Autofish-0.9.2-forge-mc1.16.4.jar Basic-Nether-Ores-1.16.4.jar Big-Buckets-1.16.4.jar BowInfinityFix-1.16.4.jar CTM-MC1.16.1-1.1.2.6.jar- Chargers-1.16.4-3.0.2.4.jar ChickenChunks-1.16.4-2.7.0.85-universal.jar CodeChickenLib-1.16.4-3.5.0.401-universal.jar ColossalChests-1.16.4-1.7.13.jar CommonCapabilities-1.16.5-2.5.7.jar CraftingCraft-1.16.4.jar CyclopsCore-1.16.5-1.11.4.jar EditSign-Forge-1.16.4-2.2.0.jar EnderBags-1.16.4-6.3.1.jar EnderStorage-1.16.4-2.7.0.161-universal.jar EverlastingAbilities-1.16.5-1.7.1.jar Excavator-1.8.2.jar Flopper-1.16.4-1.0.6.jar Futurepack-1.16.4-31.1.8176.jar HarvestWithDispenser-3.0.1.jar IntegratedCrafting-1.16.5-1.0.13.jar IntegratedDynamics-1.16.5-1.6.1.jar IntegratedTerminals-1.16.5-1.1.3.jar IntegratedTunnels-1.16.5-1.7.0.jar LargeFluidTank-16.1.6.jar LavaClearView-1.16.2-1.1.0.jar Mekanism-1.16.5-10.0.21.448.jar MekanismAdditions-1.16.5-10.0.21.448.jar MekanismGenerators-1.16.5-10.0.21.448.jar MekanismTools-1.16.5-10.0.21.448.jar NaturesCompass-1.16.5-1.8.6.jar OptiFine_1.16.5_HD_U_G6.jar- Placebo-1.16.4-4.4.1.jar RepairChests-1.16.5-1.7.jar ScalableCatsForce-2.13.4-build-2-with-library.jar Simple-Magnets-1.16.4.jar TipTheScales-1.16.5-3.0.0.11.jar VillagersRespawn-1.16.5-1.36.0.3.jar WorldEdit-CUI-FE3-1.16.5-3.0.9.jar XaerosWorldMap_1.12.2_Forge_1.16.5.jar Xaeros_Minimap_21.4.2_Forge_1.16.5.jar advancedperipherals-0.3.6b.jar alwaysawitherskull_1.16.5-1.3.jar appliedenergistics2-8.2.0.jar architectury-1.9.136-forge.jar backpacked-1.7.0-1.16.3.jar backpacker-1.1.0-1.16.3.jar branders-spawnermod-1.16.4-1.7.11.jar cc-tweaked-1.16.4-1.95.2.jar chiselsandbits-0.3.4-RELEASE.jar cloth-config-4.11.15-forge.jar cofh_core-1.16.3-1.1.6.jar collective-1.16.5-2.24.jar compact-crafting-1.0.0-alpha.2.jar compactmachines-4.0.0-beta.2.jar configured-0.2.0-1.16.3.jar corpse-1.16.5-1.0.2.jar custom-crosshair-mod-v1.1.0-forge-mc1.16.5.jar diamondglass-1.16.5-4.2.27.jar ezzoom-1.16.4-1.1.1.jar ferritecore-2.0.3-forge.jar fixedanvilrepaircost_1.16.5-1.4.jar ftb-gui-library-1604.1.1.26.jar furniture-7.0.0-pre19-1.16.3.jar goprone-1.16.4-1.3.5.jar infinitetrading_1.16.5-1.4.jar invtweaks-1.16.4-1.0.1.jar ironchest-1.16.4-11.2.10.jar ironshulkerboxes-1.16.4-5.1.11.jar itemcollectors-1.0.11-mc1.16.5.jar jei-1.16.5-7.6.1.75.jar kubejs-1605.3.6-build.176-forge.jar kubejs-mekanism-1604.1.1.6.jar kubejs-thermal-1605.1.1.6.jar light-overlay-5.8.0.jar mcjtylib-1.16-5.0.19.jar mobcatcher-3.2.jar nametagtweaks_1.16.5-1.5.jar performant-1.16.2-4-3.30m.jar preciseblockplacing-1.0.6+1.16.5.jar preview_OptiFine_1.16.5_HD_U_G8_pre8.jar proxies-0.17.0.jar rftoolsbase-1.16-2.0.10.jar rftoolsbuilder-1.16-3.0.16.jar rftoolscontrol-1.16-4.0.8.jar rftoolsdim-1.16-7.0.7-beta.jar rftoolspower-1.16-3.0.8.jar rftoolsstorage-1.16-2.0.11.jar rftoolsutility-1.16-3.0.22.jar rhino-1.7.13-build.14.jar shutupexperimentalsettings-1.0.3.jar silent-gear-1.16.3-2.6.12.jar silent-lib-1.16.3-4.9.6.jar tesseract-1.0.18-mc1.16.4.jar theoneprobe-1.16-3.0.7.jar thermal_cultivation-1.16.3-1.1.6.jar thermal_expansion-1.16.3-1.1.6.jar thermal_foundation-1.16.3-1.1.6.jar thermal_innovation-1.16.3-1.1.7.jar thermal_locomotion-1.16.3-1.1.6.jar trashcans-1.0.8-mc1.16.4.jar worldedit-mod-7.2.4.jar

rubensworks commented 3 years ago

That's weird. This should've been fixed already in recent ID versions.

Could you try re-creating your recipes via the ID logic programmer? Perhaps you created your recipes in an old ID version, which still had the bugged recipe variables.

Downgrading to IntegratedCrafting-1.16.4-1.0.11.jar did help

That surprises me, as no crafting code was changed since this version.

no-response[bot] commented 3 years ago

This issue has been automatically closed because there has been no response to our request for more information from the original author. With only the information that is currently in the issue, we don't have enough information to take action. Please reach out if you have or find the answers we need so that we can investigate further.

7eggert commented 3 years ago

Real life allowed me to try this today. https://youtu.be/ku2XjmhjmTs

YouTube
rubensworks commented 3 years ago

I'll repeat my question:

Could you try re-creating your recipes via the ID logic programmer? Perhaps you created your recipes in an old ID version, which still had the bugged recipe variables.

It's possible that some bugged recipes you created in the old version are still present in your crafting interfaces.

7eggert commented 3 years ago

I do re-create the recipe in the video. I will try with new terminals mod later.

rubensworks commented 3 years ago

You're only recreating the main recipe, not the dependency recipes (which is where the problem occurs)

7eggert commented 3 years ago

I did remove it now and also I updated to the latest version available on curseforge. It sometimes wants to use air, sometimes it fails correctly because of only having one plank.

https://youtu.be/-el-owP2iAo


Edit: When disconnecting the large chests (rftools, colossal chests), the error disappears. Same if I disconnect the machines and ore processing. Also Issue #58 does not happen if no ores are processed.

By re-connecting them, I get the same error back.


CommonCapabilities-1.16.5-2.6.0.jar CyclopsCore-1.16.5-1.11.5.jar IntegratedCrafting-1.16.5-1.0.13.jar IntegratedDynamics-1.16.5-1.7.1.jar IntegratedTerminals-1.16.5-1.2.2.jar IntegratedTunnels-1.16.5-1.7.1.jar

AutoDropper-1.16.3-7.0.0.jar Autofish-0.9.2-forge-mc1.16.4.jar Basic-Nether-Ores-1.16.4.jar Big-Buckets-1.16.4.jar BowInfinityFix-1.16.4.jar CapabilityProxy-1.16.5-2.1.9.jar Chargers-1.16.4-3.0.2.4.jar ChickenChunks-1.16.4-2.7.0.85-universal.jar CodeChickenLib-1.16.4-3.5.0.401-universal.jar ColossalChests-1.16.4-1.7.13.jar CraftingCraft-1.16.4.jar EditSign-Forge-1.16.4-2.2.0.jar EnderBags-1.16.4-6.3.1.jar EnderStorage-1.16.4-2.7.0.161-universal.jar EverlastingAbilities-1.16.5-1.7.1.jar Excavator-1.8.2.jar Flopper-1.16.4-1.0.6.jar Futurepack-1.16.4-31.1.8176.jar HarvestWithDispenser-3.0.1.jar LargeFluidTank-16.1.6.jar LavaClearView-1.16.2-1.1.0.jar Mekanism-1.16.5-10.0.21.448.jar MekanismAdditions-1.16.5-10.0.21.448.jar MekanismGenerators-1.16.5-10.0.21.448.jar MekanismTools-1.16.5-10.0.21.448.jar NaturesCompass-1.16.5-1.8.6.jar Placebo-1.16.4-4.4.1.jar RepairChests-1.16.5-1.7.jar ScalableCatsForce-2.13.4-build-2-with-library.jar Simple-Magnets-1.16.4.jar TipTheScales-1.16.5-3.0.0.11.jar VillagersRespawn-1.16.5-1.36.0.3.jar WorldEdit-CUI-FE3-1.16.5-3.0.9.jar XaerosWorldMap_1.12.2_Forge_1.16.5.jar Xaeros_Minimap_21.4.2_Forge_1.16.5.jar advancedperipherals-0.3.6b.jar ae2extras-1.3-1.16.5.jar alwaysawitherskull_1.16.5-1.3.jar appliedenergistics2-8.2.0.jar architectury-1.9.136-forge.jar backpacked-1.7.0-1.16.3.jar backpacker-1.1.0-1.16.3.jar branders-spawnermod-1.16.4-1.7.11.jar cc-tweaked-1.16.4-1.95.2.jar chiselsandbits-0.3.4-RELEASE.jar cloth-config-4.11.15-forge.jar cofh_core-1.16.4-1.2.1.jar collective-1.16.5-2.24.jar compact-crafting-1.0.0-alpha.2.jar compactmachines-4.0.0-beta.2.jar configured-0.2.0-1.16.3.jar corpse-1.16.5-1.0.2.jar custom-crosshair-mod-v1.1.0-forge-mc1.16.5.jar diamondglass-1.16.5-4.2.27.jar ezzoom-1.16.4-1.1.1.jar ferritecore-2.0.3-forge.jar fixedanvilrepaircost_1.16.5-1.4.jar ftb-gui-library-1604.1.1.26.jar furniture-7.0.0-pre19-1.16.3.jar goprone-1.16.4-1.3.5.jar infinitetrading_1.16.5-1.4.jar invtweaks-1.16.4-1.0.1.jar ironchest-1.16.4-11.2.10.jar ironshulkerboxes-1.16.4-5.1.11.jar itemcollectors-1.0.11-mc1.16.5.jar jei-1.16.5-7.6.1.75.jar kubejs-1605.3.6-build.176-forge.jar kubejs-mekanism-1604.1.1.6.jar kubejs-thermal-1605.1.1.6.jar light-overlay-5.8.0.jar mcjtylib-1.16-5.0.19.jar mobcatcher-3.2.jar nametagtweaks_1.16.5-1.5.jar performant-1.16.2-4-3.30m.jar preciseblockplacing-1.0.6+1.16.5.jar preview_OptiFine_1.16.5_HD_U_G8_pre8.jar proxies-0.17.0.jar rftoolsbase-1.16-2.0.10.jar rftoolsbuilder-1.16-3.0.16.jar rftoolscontrol-1.16-4.0.8.jar rftoolsdim-1.16-7.0.7-beta.jar rftoolspower-1.16-3.0.8.jar rftoolsstorage-1.16-2.0.11.jar rftoolsutility-1.16-3.0.22.jar rhino-1.7.13-build.14.jar shutupexperimentalsettings-1.0.3.jar silent-lib-1.16.3-4.9.6.jar- tesseract-1.0.18-mc1.16.4.jar theoneprobe-1.16-3.0.7.jar thermal_cultivation-1.16.4-1.2.0.jar thermal_expansion-1.16.4-1.2.0.jar thermal_foundation-1.16.4-1.2.0.jar thermal_innovation-1.16.4-1.2.0.jar thermal_locomotion-1.16.4-1.2.0.jar trashcans-1.0.8-mc1.16.4.jar worldedit-mod-7.2.4.jar

- YouTube
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
rubensworks commented 3 years ago

@7eggert It's very likely to be related to old recipes still. Could you try reproducing the problem in a new world, without any other mods installed? If you can reproduce the problem in this new world, please send me your world, so I can properly debug this, because there's not much I can do about this atm.

7eggert commented 3 years ago

(It's hard to reproduce in a completely new world because it needs a lot of machines being active to show. I'll try but meanwhile I upload it here:) ↑Disregard this, I was commenting on the wrong bug. But still I got no free time today, I shouldn't have time to comment now.

https://mega.nz/file/st5CCCrQ#lQ-31m_wVAp25KRCrdqOeoPLGzGAGrCBhWMdl3BNWIA

https://mega.nz/file/khwmDQAR#S3Kf4HvSr-VdR2VxM09_S5XYF2dZKf4k9O-qlGT6Zmg

251.89 MB file on MEGA
98.92 MB file on MEGA
TheOneTwelfth commented 3 years ago

Can confirm this.

In this example, I have way more osmium stored than needed for the recipe, and the crafting plan still comes out as invalid. There is also air required for the recipe.

This issue is not consistent, and does not reproduce all the time, however, it gets more frequent the bigger the network gets.

I'm not entirely sure, but it seems to be linked with the speed at which the network contents change. For example, with my digital miner active (which floods the network with items very rapidly), the issue is present with most recipes I have, even those that are just straight shapeless input-output.

I've started my world with Integrated Dynamics 1.7.2, so the recipe bug you mentioned doesn't seem to be the case.

EDIT:

Downgrading to IntegratedCrafting-1.16.4-1.0.11.jar did help

Oddly enough, downgrading to 1.0.11 really does eliminate the bug. Maybe https://github.com/CyclopsMC/IntegratedCrafting/commit/0fbbc3c1b0ad3657c89dc3cba9b9b08304e55260 is the culprit?

rubensworks commented 3 years ago

@TheOneTwelfth Thanks for your comment, this input definitely helps!

From what you're saying, and the fact that downgrading to 1.0.11 solves the problem, 0fbbc3c1b0ad3657c89dc3cba9b9b08304e55260 definitely makes sense to cause the issue.

Note to self: try to make isObservationForcedPending a proper cross-thread semaphore, as this may currently cause sub-jobs to be empty.

druidbruce commented 3 years ago

but it seems to be linked with the speed at which the network contents change. For example, with my digital miner active (which floods the network with items very rapidly), the issue is present with most recipes I have, even those that are just straight shapeless input-output.

agrees with my experience

druidbruce commented 3 years ago

confirmed its not because of recipe that contains empty air, made a chain of recipe that does not have empty slots at all and checked when it shows up the crafting plan, no empty air lines exist, but still says missing storage ingredients while i have more than enough to craft everything just seems like the network can't find the mats

rubensworks commented 3 years ago

This should be fixed in the latest dev build.

If anyone wants to test to confirm, you'll need the latest dev builds of both Crafting and Terminals.

TheOneTwelfth commented 3 years ago

This should be fixed in the latest dev build.

If anyone wants to test to confirm, you'll need the latest dev builds of both Crafting and Terminals.

Can confirm this is fixed, however, now the crafting plan takes much longer (like 5-6x) to calculate.

rubensworks commented 3 years ago

@TheOneTwelfth Thanks for checking. I anticipated that may happen...

I just did some tweaks in Terminals. Could you retry with its latest dev build? If it doesn't work properly yet, there's a new config option (craftingPlannerRetryTimeout) that you may be able to use to optimize things.

7eggert commented 3 years ago

I now did download the dev builds of Integrated($Everything) and CommonCapabilities and tested it on my old world (with a lot of recipes) and in a fresh world. In a fresh world, I could craft a stick. In my old world I had a problem with FuturePack. It did result in the error below. When FuturePack is removed, I can't craft a stick even if I renew the recipe and put a stack of oak logs into the colossal chest.

java.lang.ClassCastException: class org.cyclops.integratedtunnels.part.PartStateWorld cannot be cast to class org.cyclops.integratedtunnels.core.part.PartStatePositionedAddon (org.cyclops.integratedtunnels.part .PartStateWorld and org.cyclops.integratedtunnels.core.part.PartStatePositionedAddon are in unnamed module of loader cpw.mods.modlauncher.TransformingClassLoader @230232b0) at org.cyclops.integratedtunnels.part.aspect.IChanneledTarget.getPartState(IChanneledTarget.java:57) ~[integratedtunnels:1.8.0]

CommonCapabilities-1.16.5-2.7.0-22.jar Futurepack-1.16.4-31.1.8226.jar IntegratedCrafting-1.16.5-1.0.14-22.jar IntegratedDynamics-1.16.5-1.8.0-78.jar IntegratedTerminals-1.16.5-1.2.3-45.jar IntegratedTunnels-1.16.5-1.8.0-53.jar (all the other mods are omitted here)

rubensworks commented 3 years ago

@7eggert That looks like an unrelated (but valid) error. Could you open a separate issue for this?

TheOneTwelfth commented 3 years ago

@TheOneTwelfth Thanks for checking. I anticipated that may happen...

I just did some tweaks in Terminals. Could you retry with its latest dev build? If it doesn't work properly yet, there's a new config option (craftingPlannerRetryTimeout) that you may be able to use to optimize things.

@rubensworks Thanks for the reply, but I think that just made the situation worse. I've installed a latest dev build and played around with craftingPlannerRetryTimeout, but I couldn't get a single plan to calculate, just endless waiting.

rubensworks commented 3 years ago

@TheOneTwelfth I just changed the granularity of craftingPlannerRetryTimeout to be in terms of millis instead of ticks (defaults to 25 now), so that give you better controls. With the default config value, this should now be exactly the same as it was before. Please let me know if this better, and if you find a better value (probably lower), please let me know as well.

TheOneTwelfth commented 3 years ago

@rubensworks Crafting plans are still stuck. Changing the setting doesn't help.

rubensworks commented 3 years ago

@TheOneTwelfth and does reverting to the older dev build of terminals make things work again? (Logic-wise, things should be identical to the latest version though)

druidbruce commented 3 years ago

not sure if this will help but this is what happens if i try to craft something too complicated on a server image

versions: IntegratedDynamics-1.16.5-1.7.2 IntegratedTerminals-1.16.5-1.2.2 IntegratedCrafting-1.16.5-1.0.13 IntegratedTunnels-1.16.5-1.7.1 CommonCapabilities-1.16.5-2.6.0 CyclopsCore-1.16.5-1.11.5

TheOneTwelfth commented 3 years ago

@rubensworks Sorry for the delayed reply. I've just downgraded to Crafting 1.0.14-22 and Terminals 1.2.3-44, and the crafting plan has been calculating for about 10 minutes, and still going. So, I guess, the problem persists even with the slightly older dev build. Probably, it's because my network got more complex.

rubensworks commented 3 years ago

@TheOneTwelfth Thanks for checking. Looks like I'll have to figure out an alternative solution.

Note to self: try to pause observers when calculating plans, probably using mutexes or barriers.

rubensworks commented 3 years ago

@TheOneTwelfth Could you try again with the following dev builds? https://www.dropbox.com/sh/nin35rynmlp6gqd/AAD_p8Dl1-ztSCvuVQ1_COX3a?dl=0 (Dropbox because Maven is experiencing some issues)

(You may have to downgrade ITerminals, but probably not)

Dropbox
tmp_4_05_2021
Shared with Dropbox
TheOneTwelfth commented 3 years ago

@rubensworks I've installed both builds, and now my world loading gets stuck right before view distance changing. Waited for around 30 minutes to no avail.

[Server thread/INFO] [ObserverLib/]: Load CachedWorldData 'lightnetwork' for world minecraft:overworld
[Server thread/INFO] [ObserverLib/]: Loading of 'lightnetwork' for world minecraft:overworld finished.
[Server thread/INFO] [net.minecraft.server.integrated.IntegratedServer/]: Changing view distance to 8, from 10  # this line should be next, but it never prints

Everything works fine with last stable IntegratedCrafting (and the ID build you've provided). Full world startup log: https://gist.github.com/TheOneTwelfth/a3f1427ac6843d53375b0388bddd08b8

rubensworks commented 3 years ago

@TheOneTwelfth Thanks for checking again. Do you by any chance have any crafting writers present that continuously craft stuff? Because that's the only reason I can think of why this might hapen.

Could you share a zip of your world (+mods, configs, ...) with me? That might be easier for debugging, as it looks like this one will take much more effort for fixing...

Note to self: setup some crafting writers myself, as these calculate jobs synchronously.

Multithreading can be hard...

rubensworks commented 3 years ago

@TheOneTwelfth I wasn't able to reproduce your problem, so I'm definitely going to need that world.

I've pushes a new dev build of Crafting (for which you'll also need the latest Dynamics dev build). All dev builds are available again, but in a different place (see badge in README).

EDIT: anyone else following this thread that can share a reproducible setup, please let me know.

rubensworks commented 3 years ago

Considering this fixed.