CraftTweaker

CraftTweaker

151M Downloads

.noReturn doesn't work with <minecraft:milk_bucket>

dredhorse opened this issue ยท 6 comments

commented

Intro:

trying to add a recipe for converting minecraft milk into animania milk.

Issue Description:

crafting a vanilla milk bucket to animania milk bucket returns the animania milk bucket and leaves an empty bucket in the grid.

What happens:

see above

What you expected to happen:

crafting a vanilla milk bucket to animania milk bucket returns only animania milk bucket and consumes the original bucket

Script used

val onlyMilk = minecraft:milk_bucket.noReturn();
recipes.addShaped(forge:bucketfilled.withTag({FluidName: "milk_jersey", Amount: 1000}), [[onlyMilk]]);
or
recipes.addShapeless( forge:bucketfilled.withTag({FluidName: "milk_friesian", Amount: 1000}),[minecraft:milk_bucket.noReturn()]);

full script: https://gist.github.com/dredhorse/b9a4f64a34afc27430000f8390b71c49

crafttweaker.log file (Please Pastebin or gist your file, posting an unpasted or ungist'd file will automatically close this issue):

crafttweaker. log https://gist.github.com/dredhorse/8ea702ac6cfa1c3f1c266cc2d4ec5718

Affected Versions (Do not use "latest"):

Minecraft: 1.12.2
Forge: 14.23.5.2784
Crafttweaker: 4.1.13
Using a server: no
If yes, does the client have the exact same scripts?

Your most recent log file where the issue was present:

lastest.log https://gist.github.com/dredhorse/0381d8df04d703fadb4415fe88c74e2d

commented

don't know if .noReturn() is not working correctly or is overwritten by the mods.

But I had a similar issue with the Breadcrumbs mod. The mod by itself consumes ONE breadcrumb, trying to add a recipe to consume 64 breadcrumbs to return a full bag returned a full bag, but left 63 breadcrumbs in the crafting grid with a recipe which did use .noReturn().
I changed the recipe to .transformConsume(63) which removes all breadcrumbs.

recipes.addShapeless( breadcrumbPouchFull, [breadcrumbtrail:breadcrumb.transformConsume(63) *64, breadcrumbPouchEmpty] );

the same "fix" works for the issue with the milk bucket.
So if .noReturn() isn't broken perhaps adding this information to the wiki could be useful.

commented

Okay, since several statements here need addressing, let's go over them one by one:

noReturn doesn't work correctly
That may or may not be, give us at least some time to look into it.

.noReturn only consumes 1 item
That is the intended behaviour, MC recipes are made to only consume one item at a time.

.transformConsume allows for consuming more than one item
That is correct but we don't recommend using it as it may not work on every crafting grid on every crafting (fake) player as it directly modifies the grid.

commented

thanks for that information concerning .transformConsume() . I haven't found that anywhere documented.
concerning .noReturn() I'm waiting.

commented

Works fine for me. Check that no other recipes overlap since you are creating at least 5 conflicting recipes...

commented

hmm, so that would be a mod interaction with nomorerecipeconflicts which allows having several recipes with the same ingredients?

commented

Yes. in vanilla, you are only ever meant to have unique recipes, no duplicates, not even sure how we would change our code to handle duplicate recipes.