diff --git a/kubejs/assets/tfg/textures/item/mold/fired/nugget_mold_empty.png b/kubejs/assets/tfg/textures/item/mold/fired/nugget_mold_empty.png new file mode 100644 index 000000000..5be985371 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/fired/nugget_mold_empty.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/fired/nugget_mold_overlay.png b/kubejs/assets/tfg/textures/item/mold/fired/nugget_mold_overlay.png new file mode 100644 index 000000000..3c973400e Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/fired/nugget_mold_overlay.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/fired/rod_mold_empty.png b/kubejs/assets/tfg/textures/item/mold/fired/rod_mold_empty.png new file mode 100644 index 000000000..51ac00090 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/fired/rod_mold_empty.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/fired/rod_mold_overlay.png b/kubejs/assets/tfg/textures/item/mold/fired/rod_mold_overlay.png new file mode 100644 index 000000000..c37e7324a Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/fired/rod_mold_overlay.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/fired/small_gear_mold_empty.png b/kubejs/assets/tfg/textures/item/mold/fired/small_gear_mold_empty.png new file mode 100644 index 000000000..5ced2a7fc Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/fired/small_gear_mold_empty.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/fired/small_gear_mold_overlay.png b/kubejs/assets/tfg/textures/item/mold/fired/small_gear_mold_overlay.png new file mode 100644 index 000000000..c07e67ea5 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/fired/small_gear_mold_overlay.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/unfired/unfired_nugget_mold.png b/kubejs/assets/tfg/textures/item/mold/unfired/unfired_nugget_mold.png new file mode 100644 index 000000000..6c2b4a1b0 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/unfired/unfired_nugget_mold.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/unfired/unfired_rod_mold.png b/kubejs/assets/tfg/textures/item/mold/unfired/unfired_rod_mold.png new file mode 100644 index 000000000..1c48990bc Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/unfired/unfired_rod_mold.png differ diff --git a/kubejs/assets/tfg/textures/item/mold/unfired/unfired_small_gear_mold.png b/kubejs/assets/tfg/textures/item/mold/unfired/unfired_small_gear_mold.png new file mode 100644 index 000000000..101928c6e Binary files /dev/null and b/kubejs/assets/tfg/textures/item/mold/unfired/unfired_small_gear_mold.png differ diff --git a/kubejs/server_scripts/tfc/recipes.materials.js b/kubejs/server_scripts/tfc/recipes.materials.js index 850c48c2f..9c9a8d58d 100644 --- a/kubejs/server_scripts/tfc/recipes.materials.js +++ b/kubejs/server_scripts/tfc/recipes.materials.js @@ -517,6 +517,11 @@ function registerTFCMaterialsRecipes(event) { event.recipes.tfc.anvil(rodItem.withCount(2), ingotItem, ['draw_last']) .tier(tfcProperty.getTier()) .id(`tfc:anvil/${material.getName()}_rod`) + + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(rodItem.withCount(1), 'tfg:rod_mold', Fluid.of(outputMaterial.getFluid(), 72), 0.05) + .id(`tfc:casting/${material.getName()}_rod`) + } // Long Rods let longRodItem = ChemicalHelper.get(TagPrefix.rodLong, material, 1) @@ -623,6 +628,11 @@ function registerTFCMaterialsRecipes(event) { event.recipes.tfc.anvil(nuggetItem, ingotItem, ['punch_last', 'hit_second_last', 'punch_third_last']) .tier(tfcProperty.getTier()) .id(`tfc:anvil/${material.getName()}_nugget`) + + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(nuggetItem.withCount(4), 'tfg:nugget_mold', Fluid.of(outputMaterial.getFluid(), 64), 0.05) + .id(`tfc:casting/${material.getName()}_nugget`) + } } } @@ -636,10 +646,13 @@ function registerTFCMaterialsRecipes(event) { .id(`tfc:heating/small_${material.getName()}_gear`) } - if (material.hasFlag(MaterialFlags.GENERATE_SMALL_GEAR)) { - event.recipes.tfc.anvil(`gtceu:small_${material.getName()}_gear`, `#forge:ingots/${material.getName()}`, ['hit_last', 'shrink_second_last', 'draw_third_last']) + event.recipes.tfc.anvil(`gtceu:small_${material.getName()}_gear`, `#forge:ingots/${material.getName()}`, ['hit_last', 'shrink_second_last', 'draw_third_last']) .tier(tfcProperty.getTier()) .id(`tfc:anvil/small_${material.getName()}_gear`) + + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(smallGearItem.withCount(1), 'tfg:small_gear_mold', Fluid.of(outputMaterial.getFluid(), 144), 0.05) + .id(`tfc:casting/small_${material.getName()}_gear`) } } diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index d8c290270..6608c3ef1 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -50,6 +50,10 @@ function registerTFGHeatData(event) { event.itemHeat('tfg:food/brioche_bun', 1.0, null, null); event.itemHeat('tfg:food/raw_burger_patty', 1.0, null, null); event.itemHeat('tfg:food/cooked_burger_patty', 1.0, null, null); + + event.itemHeat('tfg:unfired_rod_mold', 1.0, null, null); + event.itemHeat('tfg:unfired_small_gear_mold', 1.0, null, null); + event.itemHeat('tfg:unfired_nugget_mold', 1.0, null, null); } //#endregion @@ -312,6 +316,20 @@ function registerTFGItemSize(event) { event.itemSize('#forge:tools/wrenches', 'very_large', 'very_heavy', 'wrenches') event.itemSize('#forge:tools/mining_hammers', 'very_large', 'very_heavy', 'mining_hammers') event.itemSize('#forge:tools/spades', 'very_large', 'very_heavy', 'spades') + + event.itemSize( + orArray([ + "tfg:unfired_rod_mold", + "tfg:unfired_small_gear_mold", + "tfg:unfired_nugget_mold", + "tfg:rod_mold", + "tfg:small_gear_mold", + "tfg:nugget_mold" + ]), + "normal", + "medium", + "Molds" + ) } //#endregion diff --git a/kubejs/server_scripts/tfg/primitive/recipes.clay.js b/kubejs/server_scripts/tfg/primitive/recipes.clay.js index 53ffe00e6..9c949dccc 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.clay.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.clay.js @@ -158,4 +158,12 @@ function registerTFGClayRecipes(event) { .adjacentFluids(["tfc:salt_water", "tfc:spring_water"]) .duration(50) .EUt(GTValues.VA[GTValues.LV]) + + // heating + event.recipes.tfc.heating('tfg:unfired_rod_mold', 1399) + .resultItem('tfg:rod_mold') + event.recipes.tfc.heating('tfg:unfired_small_gear_mold', 1399) + .resultItem('tfg:small_gear_mold') + event.recipes.tfc.heating('tfg:unfired_nugget_mold', 1399) + .resultItem('tfg:nugget_mold') } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/primitive/recipes.knapping.js b/kubejs/server_scripts/tfg/primitive/recipes.knapping.js index 8c9113e82..93da6cee1 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.knapping.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.knapping.js @@ -212,7 +212,6 @@ function registerTFGKnappingRecipes(event) { "XXX", "XXX", "XXX" - ]) .ingredient('tfc:straw') .outsideSlotRequired(false) @@ -223,10 +222,40 @@ function registerTFGKnappingRecipes(event) { event.recipes.tfc.knapping('tfcambiental:straw_hat', 'tfg:straw', [ " XXX ", "XXXXX" - ]) .ingredient('tfc:straw') .outsideSlotRequired(false) .id('sns:straw_knapping/straw_hat') + + // Molds + event.recipes.tfc.knapping('tfg:unfired_rod_mold', 'tfc:fire_clay', [ + "XXXXX", + "XXX X", + "XX XX", + "X XXX", + "XXXXX" + ]) + .ingredient('5x tfc:fire_clay') + .id('tfg:fire_clay_knapping/unfired_rod_mold') + + event.recipes.tfc.knapping('tfg:unfired_small_gear_mold', 'tfc:fire_clay', [ + "XX XX", + "X X", + " X ", + "X X", + "XX XX" + ]) + .ingredient('5x tfc:fire_clay') + .id('tfg:fire_clay_knapping/unfired_small_gear_mold') + + event.recipes.tfc.knapping('tfg:unfired_nugget_mold', 'tfc:clay', [ + "XXXXX", + "X X X", + "XXXXX", + "X X X", + "XXXXX" + ]) + .ingredient('5x minecraft:clay_ball') + .id('tfg:fire_clay_knapping/unfired_nugget_mold') -} \ No newline at end of file +} diff --git a/kubejs/startup_scripts/gtceu/material_modification.js b/kubejs/startup_scripts/gtceu/material_modification.js index f31a4a31c..50476a695 100644 --- a/kubejs/startup_scripts/gtceu/material_modification.js +++ b/kubejs/startup_scripts/gtceu/material_modification.js @@ -188,13 +188,30 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Hematite.addFlags(GENERATE_DUSTY_ORES); //#endregion - + // + // /* Castable stuff */ + GTMaterials.Copper.addFlags(CAN_BE_UNMOLDED); + GTMaterials.BismuthBronze.addFlags(CAN_BE_UNMOLDED); + GTMaterials.BlackBronze.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Bronze.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Tin.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Bismuth.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Zinc.addFlags(CAN_BE_UNMOLDED); + GTMaterials.SterlingSilver.addFlags(CAN_BE_UNMOLDED); + GTMaterials.RoseGold.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Silver.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Gold.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Nickel.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Brass.addFlags(CAN_BE_UNMOLDED); + GTMaterials.RedAlloy.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Lead.addFlags(CAN_BE_UNMOLDED); + GTMaterials.Potin.addFlags(CAN_BE_UNMOLDED); // // /* Имеют инструменты, броню TFC, двойные слитки */ - GTMaterials.Copper.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY, CAN_BE_UNMOLDED); - GTMaterials.BismuthBronze.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY, CAN_BE_UNMOLDED); - GTMaterials.Bronze.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY, CAN_BE_UNMOLDED); - GTMaterials.BlackBronze.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY, CAN_BE_UNMOLDED); + GTMaterials.Copper.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); + GTMaterials.BismuthBronze.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); + GTMaterials.Bronze.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); + GTMaterials.BlackBronze.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); GTMaterials.WroughtIron.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); GTMaterials.Steel.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); GTMaterials.BlackSteel.addFlags(GENERATE_DOUBLE_INGOTS, GENERATE_ROTOR, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); @@ -219,11 +236,11 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Silver.addFlags(HAS_SMALL_NATIVE_TFC_ORE); // // /* Имеют двойные слитки */ - GTMaterials.RedAlloy.addFlags(GENERATE_DOUBLE_INGOTS, GENERATE_SMALL_GEAR, CAN_BE_UNMOLDED); + GTMaterials.RedAlloy.addFlags(GENERATE_DOUBLE_INGOTS, GENERATE_SMALL_GEAR); GTMaterials.TinAlloy.addFlags(GENERATE_DOUBLE_INGOTS); GTMaterials.Lead.addFlags(GENERATE_DOUBLE_INGOTS); GTMaterials.Invar.addFlags(GENERATE_DOUBLE_INGOTS, HAS_GT_TOOL); - GTMaterials.Potin.addFlags(GENERATE_DOUBLE_INGOTS, CAN_BE_UNMOLDED); + GTMaterials.Potin.addFlags(GENERATE_DOUBLE_INGOTS, ); GTMaterials.Cobalt.addFlags(GENERATE_DOUBLE_INGOTS); GTMaterials.CobaltBrass.addFlags(GENERATE_DOUBLE_INGOTS, HAS_GT_TOOL); // diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 7e4034245..cba6d17fe 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -803,7 +803,11 @@ global.TFC_FURNACE_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ { input: "firmalife:oven_top", output: "firmalife:cured_oven_top", name: "oven_top" }, { input: "firmalife:oven_chimney", output: "firmalife:cured_oven_chimney", name: "oven_chimney" }, { input: "firmalife:oven_bottom", output: "firmalife:cured_oven_bottom", name: "oven_bottom" }, - { input: "firmalife:oven_hopper", output: "firmalife:cured_oven_hopper", name: "oven_hopper" } + { input: "firmalife:oven_hopper", output: "firmalife:cured_oven_hopper", name: "oven_hopper" }, + { input: "firmalife:oven_hopper", output: "firmalife:cured_oven_hopper", name: "oven_hopper" }, + { input: "tfg:unfired_rod_mold", output: "tfg:rod_mold", name: "rod_mold" }, + { input: "tfg:unfired_small_gear_mold", output: "tfg:small_gear_mold", name: "small_gear_mold" }, + { input: "tfg:unfired_nugget_mold", output: "tfg:nugget_mold", name: "nugget_mold" } ]); global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ @@ -835,14 +839,17 @@ global.TFC_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ { input: "5x minecraft:clay_ball", output: "10x rnr:unfired_roof_tile", name: "roof_tile" }, { input: "5x minecraft:clay_ball", output: "firmalife:oven_top", name: "oven_top" }, { input: "5x minecraft:clay_ball", output: "firmalife:oven_chimney", name: "oven_chimney" }, - { input: "5x minecraft:clay_ball", output: "firmalife:oven_bottom", name: "oven_bottom" } + { input: "5x minecraft:clay_ball", output: "firmalife:oven_bottom", name: "oven_bottom" }, + { input: "5x minecraft:clay_ball", output: "tfg:unfired_nugget_mold", name: "nugget_mold" } ]); global.TFC_FIRE_CLAY_TO_UNFIRED_MOLD_RECIPE_COMPONENTS = /** @type {const} */ ([ { input: "5x tfc:fire_clay", output: "tfc:ceramic/unfired_fire_ingot_mold", name: "fire_ingot_mold" }, { input: "5x tfc:fire_clay", output: "tfc:ceramic/unfired_crucible", name: "crucible" }, { input: "5x tfc:fire_clay", output: "tfcchannelcasting:unfired_channel", name: "channel" }, - { input: "5x tfc:fire_clay", output: "tfcchannelcasting:unfired_mold_table", name: "mold_table" } + { input: "5x tfc:fire_clay", output: "tfcchannelcasting:unfired_mold_table", name: "mold_table" }, + { input: "5x tfc:fire_clay", output: "tfg:unfired_rod_mold", name: "rod_mold" }, + { input: "5x tfc:fire_clay", output: "tfg:unfired_small_gear_mold", name: "small_gear_mold" } ]); global.TFC_BATCH_TO_BOTTLE_ASSEMBLING_RECIPE_COMPONENTS = /** @type {const} */ ([ @@ -1181,4 +1188,4 @@ global.TFC_EQUIPMENT_METALS = /** @type {const} */ ([ 'tfc:volcanic_mountains', 'tfc:volcanic_oceanic_mountain_lake', 'tfc:volcanic_oceanic_mountains' - ]) \ No newline at end of file + ]) diff --git a/kubejs/startup_scripts/tfg/primitive/items.primitive.js b/kubejs/startup_scripts/tfg/primitive/items.primitive.js index 35b0a78d1..edf9039a2 100644 --- a/kubejs/startup_scripts/tfg/primitive/items.primitive.js +++ b/kubejs/startup_scripts/tfg/primitive/items.primitive.js @@ -136,4 +136,96 @@ function registerTFGPrimitiveItems(event) { event.create('tfg:bundled_scraped_flax') .tag('tfc:scrapable') .texture('tfg:item/bundled_scraped_flax') -} \ No newline at end of file + + // Molds + event.create('tfg:rod_mold', 'tfc:mold') + .capacity(72) + .texture("base", "tfg:item/mold/fired/rod_mold_empty") + .texture("fluid", "tfg:item/mold/fired/rod_mold_overlay") + .tag('tfc:fired_molds') + .tag('tfc:molds') + .tfcccAllowedInMoldTable([ + "XXXXXXXXXXXXXX", + "XXXXXXXXXXXXXX", + "XXXXXXXXXX XX", + "XXXXXXXXX XX", + "XXXXXXXX XXX", + "XXXXXXX XXXX", + "XXXXXX XXXXX", + "XXXXX XXXXXX", + "XXXX XXXXXXX", + "XXX XXXXXXXX", + "XX XXXXXXXXX", + "XX XXXXXXXXXX", + "XXXXXXXXXXXXXX", + "XXXXXXXXXXXXXX" + ]) + + event.create('tfg:small_gear_mold', 'tfc:mold') + .capacity(288) + .texture("base", "tfg:item/mold/fired/small_gear_mold_empty") + .texture("fluid", "tfg:item/mold/fired/small_gear_mold_overlay") + .tag('tfc:fired_molds') + .tag('tfc:molds') + .tfcccAllowedInMoldTable([ + "XXXXXXXXXXXXXX", + "XXXXXXX XXXX", + "XX X XXXX", + "XX XXXX", + "XX X", + "XXX X", + "XX XX X", + "X XX XX", + "X XXX", + "X XX", + "XXXX XX", + "XXX X XX", + "XXX XXXXXXXX", + "XXXXXXXXXXXXXX" + ]) + + event.create('tfg:nugget_mold', 'tfc:mold') + .capacity(64) + .texture("base", "tfg:item/mold/fired/nugget_mold_empty") + .texture("fluid", "tfg:item/mold/fired/nugget_mold_overlay") + .tag('tfc:fired_molds') + .tag('tfc:molds') + .tfcccAllowedInMoldTable([ + "XXXXXXXXXXXXXX", + "XXXXXXXXXXXXXX", + "XXX XXXXX XXX", + "XX XXX XX", + "XX XX XX", + "XXX XXXXX XXX", + "XXXXXXXXXXXXXX", + "XXXXXXXXXXXXXX", + "XXX XXXX XXX", + "XX XXX XX", + "XX XXX XX", + "XXX XXXXX XXX", + "XXXXXXXXXXXXXX", + "XXXXXXXXXXXXXX" + ]) + + // Unfired Molds + event.create('tfg:unfired_rod_mold') + .texture("tfg:item/mold/unfired/unfired_rod_mold") + .tag('tfc:unfired_molds') + .tag('tfc:fire_clay_recycle_5') + .tag('tfc:molds') + .tag('tfc:unfired_pottery') + + event.create('tfg:unfired_small_gear_mold') + .texture("tfg:item/mold/unfired/unfired_small_gear_mold") + .tag('tfc:unfired_molds') + .tag('tfc:fire_clay_recycle_5') + .tag('tfc:molds') + .tag('tfc:unfired_pottery') + + event.create('tfg:unfired_nugget_mold') + .texture("tfg:item/mold/unfired/unfired_nugget_mold") + .tag('tfc:unfired_molds') + .tag('tfc:clay_recycle_5') + .tag('tfc:molds') + .tag('tfc:unfired_pottery') +}