Closed Thyriel closed 6 years ago
ad 2) Looking throug CT logfile it's clear why this happens. Your scripts are done in INITIALIZATION phase (the first phase), while recipes.remove is done in POSTINITIALIZATION (2nd phase). You should change it so your code is done in [AVAILABLE] phase where other mods run their code (like Botania pure daisy recipes being added)
Also for some strange reason recipes.removeShaped is removing exclusive Composer recipes too
The null is a weird bug because afaik it’s based on how CT handles vanilla recipes. I’ll take a look.
As for the rest: I’m already aware of this. Afaik there is nothing I can actually do about it, tho. Composer recipes are actually stored in the normal recipe registry (to heavily simplify a lot of things that the mod does... talking like thousands of lines and non-negligible performance hits). Unfortunately, CT does all vanilla recipe managing after allowing mods to do theirs, so afaik it’s actually incompatible with the way my recipes work. I previously changed the registration to happen the way you mentioned (along with other changes) and it made it more complex and didn’t fix it because of the above reasons.
On that note, there are a couple workarounds:
I’ll take a look again but it’s unlikely I’ll be able to solve it at the moment.
removing by name is a good idea, i'll try that thanks :)
1) Using null in Composer.addShaped to define empty slots for the recipe throws a crafttweaker errror: Invalid key entry: '' is a reserved symbol Example script:
Composer.addShaped("mytest", <minecraft:stone:1>, 512, [ [<minecraft:gold_ingot>, <minecraft:gold_ingot>, <minecraft:gold_ingot>], [<minecraft:gold_ingot>, null, <minecraft:gold_ingot>], [<minecraft:gold_ingot>, <minecraft:gold_ingot>, <minecraft:gold_ingot>] ]);
If you replace null with another ingot or so the recipe works2) It seems your Composer.addShaped is done too early in scripts. Using "recipes.remove" on an item to remove the normal craftingtable recipes before Composer.addShaped readds the item, removes the Composer recipe too, although it's added later in the same script. (i used similar scripts to change recipes in machines from other mods too and that always worked. No idea why your CT script parts are done before all the other script codes in the same file) For example if you add this in the first line of the script and after that the above example results in the Granite also not being craftable in the composer:
recipes.remove(<minecraft:stone:1>);