GregTechCEu / GregTech

GregTech CE 1.12 fork continuing progression and development
GNU Lesser General Public License v3.0
227 stars 174 forks source link

Failure to register CT made PBF recipes #1600

Closed IntegerLimit closed 1 year ago

IntegerLimit commented 1 year ago

GregTech CEu Version

v2.5.4, does not happen in 2.5.3 or earlier

Modpack Used

Can be reproduced outside of modpack, but Nomi CEu.

Addons Installed

Addons do not affect this problem, but GCYM and MBT were installed.

Environment

Singleplayer

New Worlds

Yes

Cross-Mod Interaction

Yes

Expected Behavior

All PBF recipes to be registered, in both JEI and the PBF.

Actual Behavior

Only the final recipe gets registered, except for the recipes with oreDicts, where every recipe gets registered.

Steps to Reproduce

1) Have a testing environment with CraftTweaker and GTCEu 2.5.4 installed, as well as relevant dependencies 2) Add a script with the following code:

var primitive_blast_furnace as RecipeMap = RecipeMap.getByName("primitive_blast_furnace");

// PBF recipe removals
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:ingotWroughtIron>, <metaitem:dustCoke>], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:ingotWroughtIron>, <metaitem:gemCoke>], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:ingotWroughtIron>, <minecraft:coal:1> * 2], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:ingotWroughtIron>, <metaitem:dustCoal> * 2], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:ingotWroughtIron>, <minecraft:coal:0> * 2], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:ingotWroughtIron>, <metaitem:dustCharcoal> * 2], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_ingot:0>, <metaitem:dustCoke>], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_ingot:0>, <metaitem:gemCoke>], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_ingot:0>, <minecraft:coal:1> * 2], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_ingot:0>, <metaitem:dustCoal> * 2], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_ingot:0>, <minecraft:coal:0> * 2], null).remove();
// Steel Ingot * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_ingot:0>, <metaitem:dustCharcoal> * 2], null).remove();
// Block of Steel * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:blockWroughtIron>, <metaitem:blockCoke>], null).remove();
// Block of Steel * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:blockWroughtIron>, <metaitem:blockCharcoal> * 2], null).remove();
// Block of Steel * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<metaitem:blockWroughtIron>, <minecraft:coal_block:0> * 2], null).remove();
// Block of Steel * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_block:0>, <metaitem:blockCoke>], null).remove();
// Block of Steel * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_block:0>, <minecraft:coal_block:0> * 2], null).remove();
// Block of Steel * 1
<recipemap:primitive_blast_furnace>.findRecipe(1, [<minecraft:iron_block:0>, <metaitem:blockCharcoal> * 2], null).remove();

/* Start PBF Recipes */

/* Wrought Iron */
    primitive_blast_furnace.recipeBuilder()
        .inputs([<metaitem:ingotWroughtIron>, <minecraft:coal>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(400)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<metaitem:ingotWroughtIron>, <minecraft:coal:1>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(400)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<metaitem:ingotWroughtIron>, <metaitem:dustCoal>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(400)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<metaitem:ingotWroughtIron>, <metaitem:dustCharcoal>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(400)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<metaitem:ingotWroughtIron> * 2, <metaitem:gemCoke>])
        .outputs([<metaitem:ingotSteel> * 2, <metaitem:dustTinyAsh>])
        .duration(600)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<metaitem:ingotWroughtIron> * 2, <metaitem:dustCoke>])
        .outputs([<metaitem:ingotSteel> * 2, <metaitem:dustTinyAsh>])
        .duration(600)
        .EUt(1)
        .buildAndRegister();

/* Iron */
    primitive_blast_furnace.recipeBuilder()
        .inputs([<minecraft:iron_ingot>, <minecraft:coal>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(900)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<minecraft:iron_ingot>, <minecraft:coal:1>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(900)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<minecraft:iron_ingot>, <metaitem:dustCoal>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(900)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<minecraft:iron_ingot>, <metaitem:dustCharcoal>])
        .outputs([<metaitem:ingotSteel>, <metaitem:dustTinyDarkAsh>])
        .duration(900)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<minecraft:iron_ingot> * 2, <metaitem:gemCoke>])
        .outputs([<metaitem:ingotSteel> * 2, <metaitem:dustTinyAsh>])
        .duration(1500)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<minecraft:iron_ingot> * 2, <metaitem:dustCoke>])
        .outputs([<metaitem:ingotSteel> * 2, <metaitem:dustTinyAsh>])
        .duration(1500)
        .EUt(1)
        .buildAndRegister();

/* Block Recipes */
    primitive_blast_furnace.recipeBuilder()
        .inputs([<ore:blockWroughtIron>, <ore:blockCoal>])
        .outputs([<metaitem:blockSteel>, <metaitem:dustDarkAsh>])
        .duration(3600)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<ore:blockWroughtIron>, <ore:blockCharcoal>])
        .outputs([<metaitem:blockSteel>, <metaitem:dustDarkAsh>])
        .duration(3600)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<ore:blockWroughtIron> * 2, <ore:blockFuelCoke>])
        .outputs([<metaitem:blockSteel> * 2, <metaitem:dustAsh>])
        .duration(5400)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<ore:blockIron>, <ore:blockCoal>])
        .outputs([<metaitem:blockSteel>, <metaitem:dustDarkAsh>])
        .duration(8100)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<ore:blockIron>, <ore:blockCharcoal>])
        .outputs([<metaitem:blockSteel>, <metaitem:dustDarkAsh>])
        .duration(8100)
        .EUt(1)
        .buildAndRegister();

    primitive_blast_furnace.recipeBuilder()
        .inputs([<ore:blockIron> * 2, <ore:blockFuelCoke>])
        .outputs([<metaitem:blockSteel> * 2, <metaitem:dustAsh>])
        .duration(13500)
        .EUt(1)
        .buildAndRegister();

/* End PBF Recipes */

3) Launch the instance. Note how only the last recipe of the wrought iron group (wrought iron + coke dust), and the last recipe of the iron group (iron + coke dust) gets registered, but for the block recipes which use oredicts, all the recipes gets registered.

Additional Information

No response

IntegerLimit commented 1 year ago

This may also happen with other machines, I'm not sure though.