diff --git a/CHANGELOG.md b/CHANGELOG.md index db662d3e4..4560d9fa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,11 @@ - Added melting recipes for all the TFC metal dusts @Pyritie - Added mortar and pestle recipes for soybean and olive paste (#1480) @Pyritie - Added concrete to the list of valid blocks for GT facades (#1487) @TheAshenWolf +- Removed Advanced Peripherals' Overpowered End Automata for allowing cheap interdimensional travel +- Removed Advanced Peripherals' Chunk Controller for allowing too much offline chunkloading, slowing down large servers +- Added Invar as a TFC-compatible metal (#1496) @Pyritie ### Bug fixes +- Some bug fixes for the electric refrigerators @gustovafing - Fixed not being able to craft fine wire in a coiling machine for materials that didn't also have normal wire @Pyritie - Fixed cobalt brass and potin double plates not being obtainable until MV @Pyritie - Fixed missing recipe for cooking fox meat @Pyritie diff --git a/kubejs/assets/tfc/lang/en_us.json b/kubejs/assets/tfc/lang/en_us.json index 04c21efd3..db67a55c4 100644 --- a/kubejs/assets/tfc/lang/en_us.json +++ b/kubejs/assets/tfc/lang/en_us.json @@ -2610,6 +2610,7 @@ "metal.tfg.red_alloy": "Red Alloy", "metal.tfg.tin_alloy": "Tin Alloy", "metal.tfg.lead": "Lead", + "metal.tfg.invar": "Invar", "trim_material.tfc.almandine_tfc": "Almandine", "trim_material.tfc.andradite_tfc": "Andradite", "trim_material.tfc.blue_topaz_tfc": "Blue Topaz", diff --git a/kubejs/assets/tfg/textures/block/metal/smooth/invar.png b/kubejs/assets/tfg/textures/block/metal/smooth/invar.png new file mode 100644 index 000000000..c02da8eb1 Binary files /dev/null and b/kubejs/assets/tfg/textures/block/metal/smooth/invar.png differ diff --git a/kubejs/server_scripts/gregtech/data.js b/kubejs/server_scripts/gregtech/data.js index 04af077c7..065d0544c 100644 --- a/kubejs/server_scripts/gregtech/data.js +++ b/kubejs/server_scripts/gregtech/data.js @@ -115,6 +115,7 @@ const registerGTCEUMetals = (event) => { event.metal('gtceu:red_alloy', 740, 0.01529, '#forge:ingots/red_alloy', '#forge:double_ingots/red_alloy', '#forge:plates/red_alloy', 2, 'tfg:red_alloy') event.metal('gtceu:tin_alloy', 1250, 0.00829, '#forge:ingots/tin_alloy', '#forge:double_ingots/tin_alloy', '#forge:plates/tin_alloy', 3, 'tfg:tin_alloy') event.metal('gtceu:lead', 330, 0.01729, '#forge:ingots/lead', '#forge:double_ingots/lead', '#forge:plates/lead', 2, 'tfg:lead') + event.metal('gtceu:invar', 1494, 0.00741, '#forge:ingots/invar', '#forge:double_ingots/invar', '#forge:plates/invar', 3, 'tfg:invar') } diff --git a/kubejs/server_scripts/tfc/recipes.materials.js b/kubejs/server_scripts/tfc/recipes.materials.js index 8dd3c8082..7f58800c9 100644 --- a/kubejs/server_scripts/tfc/recipes.materials.js +++ b/kubejs/server_scripts/tfc/recipes.materials.js @@ -9,6 +9,9 @@ function registerTFCMaterialsRecipes(event) { if (tfcProperty === null) { return; } + + // Add any other early game metals here with GT tools but no TFC ones + const onlyHasGTTools = material === GTMaterials.Invar; let outputMaterial = (tfcProperty.getOutputMaterial() === null) ? material : tfcProperty.getOutputMaterial() @@ -224,7 +227,7 @@ function registerTFCMaterialsRecipes(event) { } // Tools (From Double Plate) - if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL) && !onlyHasGTTools) { //#region Фурма // Декрафт инструмента в жидкость @@ -280,7 +283,7 @@ function registerTFCMaterialsRecipes(event) { } // Tools (From Plate) - if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL)) { + if (material.hasFlag(TFGMaterialFlags.HAS_TFC_TOOL) && !onlyHasGTTools) { //#region Удочка // Декрафт оголовья в жидкость @@ -357,32 +360,32 @@ function registerTFCMaterialsRecipes(event) { //#region Дубина - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/mace/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) - .useDurability(true) - .id(`tfc:heating/metal/${material.getName()}_mace`) + if (!onlyHasGTTools) { + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/mace/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material.getName()}_mace`) - // Металл + Форма -> Оголовье - if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/mace_head/${material.getName()}`, 'tfc:ceramic/mace_head_mold', Fluid.of(outputMaterial.getFluid(), 288), 1) - .id(`tfc:casting/${material.getName()}_mace_head`) + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/mace_head/${material.getName()}`, 'tfc:ceramic/mace_head_mold', Fluid.of(outputMaterial.getFluid(), 288), 1) + .id(`tfc:casting/${material.getName()}_mace_head`) - event.recipes.create.filling( - Item.of('tfc:ceramic/mace_head_mold', getFillingNBT(outputMaterial, 288)), - [ - Fluid.of(outputMaterial.getFluid(), 288), - Item.of('tfc:ceramic/mace_head_mold').strongNBT() - ] - ).id(`tfg:tfc/filling/${material.getName()}_mace_head`) + event.recipes.create.filling( + Item.of('tfc:ceramic/mace_head_mold', getFillingNBT(outputMaterial, 288)), + [ + Fluid.of(outputMaterial.getFluid(), 288), + Item.of('tfc:ceramic/mace_head_mold').strongNBT() + ] + ).id(`tfg:tfc/filling/${material.getName()}_mace_head`) + } + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/mace_head/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .id(`tfc:heating/metal/${material.getName()}_mace_head`) } - - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/mace_head/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) - .id(`tfc:heating/metal/${material.getName()}_mace_head`) - //#endregion //#region Мясницкий нож @@ -672,14 +675,16 @@ function registerTFCMaterialsRecipes(event) { //#endregion // #region mattock - event.recipes.tfc.heating(`rnr:metal/mattock/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .useDurability(true) - .id(`rnr:heating/metal/${material.getName()}_mattock`) + if (!onlyHasGTTools) { + event.recipes.tfc.heating(`rnr:metal/mattock/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`rnr:heating/metal/${material.getName()}_mattock`) - event.recipes.tfc.heating(`rnr:metal/mattock_head/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .id(`rnr:heating/metal/${material.getName()}_mattock_head`) + event.recipes.tfc.heating(`rnr:metal/mattock_head/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`rnr:heating/metal/${material.getName()}_mattock_head`) + } //#endregion // #region screwdriver @@ -1083,20 +1088,21 @@ function registerTFCMaterialsRecipes(event) { //#region shears // Сварка оголовий - event.recipes.tfc.welding(`tfc:metal/shears/${material.getName()}`, knifeHeadItem, knifeHeadItem, tfcProperty.getTier()) - .id(`tfc:welding/${material.getName()}_shears`) + if (!onlyHasGTTools) { + event.recipes.tfc.welding(`tfc:metal/shears/${material.getName()}`, knifeHeadItem, knifeHeadItem, tfcProperty.getTier()) + .id(`tfc:welding/${material.getName()}_shears`) - event.recipes.greate.compacting(`tfc:metal/shears/${material.getName()}`, [knifeHeadItem, knifeHeadItem, 'tfc:powder/flux']) - .heated() - .recipeTier(tfcProperty.getTier() < 4 ? 0 : 1) - .id(`greate:compacting/${material.getName()}_shears`) - - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/shears/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) - .useDurability(true) - .id(`tfc:heating/metal/${material.getName()}_shears`) + event.recipes.greate.compacting(`tfc:metal/shears/${material.getName()}`, [knifeHeadItem, knifeHeadItem, 'tfc:powder/flux']) + .heated() + .recipeTier(tfcProperty.getTier() < 4 ? 0 : 1) + .id(`greate:compacting/${material.getName()}_shears`) + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/shears/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 288)) + .useDurability(true) + .id(`tfc:heating/metal/${material.getName()}_shears`) + } //#endregion } @@ -1105,89 +1111,90 @@ function registerTFCMaterialsRecipes(event) { //#region prospector pick - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/propick/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .useDurability(true) - .id(`tfc:heating/metal/${material.getName()}_propick`) + if (!onlyHasGTTools) { + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/propick/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material.getName()}_propick`) - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/propick_head/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .id(`tfc:heating/metal/${material.getName()}_propick_head`) + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/propick_head/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material.getName()}_propick_head`) - // Металл + Форма -> Оголовье - if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/propick_head/${material.getName()}`, 'tfc:ceramic/propick_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) - .id(`tfc:casting/${material.getName()}_propick_head`) + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/propick_head/${material.getName()}`, 'tfc:ceramic/propick_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material.getName()}_propick_head`) - event.recipes.create.filling( - Item.of('tfc:ceramic/propick_head_mold', getFillingNBT(outputMaterial, 144)), - [ - Fluid.of(outputMaterial.getFluid(), 144), - Item.of('tfc:ceramic/propick_head_mold').strongNBT() - ] - ).id(`tfg:tfc/filling/${material.getName()}_propick_head_mold`) + event.recipes.create.filling( + Item.of('tfc:ceramic/propick_head_mold', getFillingNBT(outputMaterial, 144)), + [ + Fluid.of(outputMaterial.getFluid(), 144), + Item.of('tfc:ceramic/propick_head_mold').strongNBT() + ] + ).id(`tfg:tfc/filling/${material.getName()}_propick_head_mold`) + } } - //#endregion //#region chisel + if (!onlyHasGTTools) { + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/chisel/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material.getName()}_chisel`) - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/chisel/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .useDurability(true) - .id(`tfc:heating/metal/${material.getName()}_chisel`) + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/chisel_head/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material.getName()}_chisel_head`) - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/chisel_head/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .id(`tfc:heating/metal/${material.getName()}_chisel_head`) + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/chisel_head/${material.getName()}`, 'tfc:ceramic/chisel_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material.getName()}_chisel_head`) - // Металл + Форма -> Оголовье - if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/chisel_head/${material.getName()}`, 'tfc:ceramic/chisel_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) - .id(`tfc:casting/${material.getName()}_chisel_head`) - - event.recipes.create.filling( - Item.of('tfc:ceramic/chisel_head_mold', getFillingNBT(outputMaterial, 144)), - [ - Fluid.of(outputMaterial.getFluid(), 144), - Item.of('tfc:ceramic/chisel_head_mold').strongNBT() - ] - ).id(`tfg:tfc/filling/${material.getName()}_chisel_head_mold`) + event.recipes.create.filling( + Item.of('tfc:ceramic/chisel_head_mold', getFillingNBT(outputMaterial, 144)), + [ + Fluid.of(outputMaterial.getFluid(), 144), + Item.of('tfc:ceramic/chisel_head_mold').strongNBT() + ] + ).id(`tfg:tfc/filling/${material.getName()}_chisel_head_mold`) + } } - //#endregion //#region javelin + if (!onlyHasGTTools) { + // Декрафт инструмента в жидкость + event.recipes.tfc.heating(`tfc:metal/javelin/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .useDurability(true) + .id(`tfc:heating/metal/${material.getName()}_javelin`) - // Декрафт инструмента в жидкость - event.recipes.tfc.heating(`tfc:metal/javelin/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .useDurability(true) - .id(`tfc:heating/metal/${material.getName()}_javelin`) + // Декрафт оголовья в жидкость + event.recipes.tfc.heating(`tfc:metal/javelin_head/${material.getName()}`, tfcProperty.getMeltTemp()) + .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) + .id(`tfc:heating/metal/${material.getName()}_javelin_head`) - // Декрафт оголовья в жидкость - event.recipes.tfc.heating(`tfc:metal/javelin_head/${material.getName()}`, tfcProperty.getMeltTemp()) - .resultFluid(Fluid.of(outputMaterial.getFluid(), 144)) - .id(`tfc:heating/metal/${material.getName()}_javelin_head`) + // Металл + Форма -> Оголовье + if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { + event.recipes.tfc.casting(`tfc:metal/javelin_head/${material.getName()}`, 'tfc:ceramic/javelin_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) + .id(`tfc:casting/${material.getName()}_javelin_head`) - // Металл + Форма -> Оголовье - if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED)) { - event.recipes.tfc.casting(`tfc:metal/javelin_head/${material.getName()}`, 'tfc:ceramic/javelin_head_mold', Fluid.of(outputMaterial.getFluid(), 144), 1) - .id(`tfc:casting/${material.getName()}_javelin_head`) - - event.recipes.create.filling( - Item.of('tfc:ceramic/javelin_head_mold', getFillingNBT(outputMaterial, 144)), - [ - Fluid.of(outputMaterial.getFluid(), 144), - Item.of('tfc:ceramic/javelin_head_mold').strongNBT() - ] - ).id(`tfg:tfc/filling/${material.getName()}_javelin_head_mold`) + event.recipes.create.filling( + Item.of('tfc:ceramic/javelin_head_mold', getFillingNBT(outputMaterial, 144)), + [ + Fluid.of(outputMaterial.getFluid(), 144), + Item.of('tfc:ceramic/javelin_head_mold').strongNBT() + ] + ).id(`tfg:tfc/filling/${material.getName()}_javelin_head_mold`) + } } - //#endregion } } diff --git a/kubejs/server_scripts/tfc/recipes.metals.js b/kubejs/server_scripts/tfc/recipes.metals.js index 0bc1b7873..8a2f48fdd 100644 --- a/kubejs/server_scripts/tfc/recipes.metals.js +++ b/kubejs/server_scripts/tfc/recipes.metals.js @@ -15,6 +15,11 @@ function registerTFCMetalsRecipes(event) { TFC.alloyPart('tfc:cast_iron', 0.45, 0.55) ]).id('tfg:alloy/tin_alloy') + event.recipes.tfc.alloy('tfg:invar', [ + TFC.alloyPart('tfc:nickel', 0.60, 0.70), + TFC.alloyPart('tfc:cast_iron', 0.30, 0.40) + ]).id('tfg:alloy/invar') + //#endregion diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index f6e7df5bc..9e20c78f9 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -73,6 +73,8 @@ const registerTFCItemTags = (event) => { event.add('tfc:pileable_sheets', '#forge:plates') event.add('tfc:pileable_double_ingots', 'gtceu:tin_alloy_double_ingot') event.add('tfc:pileable_double_ingots', 'gtceu:red_alloy_double_ingot') + event.add('tfc:pileable_double_ingots', 'gtceu:lead_double_ingot') + event.add('tfc:pileable_double_ingots', 'gtceu:invar_double_ingot') // Рыба event.add('minecraft:fishes', 'tfc:food/calamari') @@ -487,6 +489,7 @@ const registerTFCFluidTags = (event) => { event.add('tfc:usable_in_ingot_mold', 'gtceu:red_alloy') event.add('tfc:usable_in_ingot_mold', 'gtceu:tin_alloy') event.add('tfc:usable_in_ingot_mold', 'gtceu:lead') + event.add('tfc:usable_in_ingot_mold', 'gtceu:invar') event.add('tfc:usable_in_bell_mold', 'gtceu:bronze') event.add('tfc:usable_in_bell_mold', 'gtceu:gold') diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/materials.js index 8be649bd8..092cf24af 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -134,6 +134,7 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.RedAlloy.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(570, 650, 740, 2)); GTMaterials.TinAlloy.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1000, 1100, 1250, 3)); GTMaterials.Lead.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(170, 250, 330, 2)); + GTMaterials.Invar.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(896, 1195, 1494, 3)); GTMaterials.Gold.addFlags(GENERATE_BELL); @@ -185,6 +186,7 @@ const registerGTCEuMaterialModification = (event) => { 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_TFC_TOOL); // // /* Superconductors */ GTMaterials.ManganesePhosphide.addFlags(GENERATE_FINE_WIRE);