From 6214f4b36b4ab15f024f617a1bd87cfb6762826d Mon Sep 17 00:00:00 2001 From: Pyritie Date: Thu, 5 Mar 2026 22:27:44 +0000 Subject: [PATCH] Feature/mv hv rework (#3270) * Material stat rework tool (#3040) * first push * add hidden tag * Update branch (#3125) * Add Turbine Rotors (#13) * first push * add hidden tag * Add Turbine Rotors * fix capitalization * Inconel 718 (#14) * fixed typo in LV initial quest (#3055) Signed-off-by: Eilandor * add inconel and every recipes * Add TiCl and Nerfs to energy (#3063) --------- Signed-off-by: Eilandor Co-authored-by: Eilandor * small balance * add all the materials for MoSiB * add mo 50 re * Add the fix with Forge Graddle I'm lost * weird stuffs --------- Signed-off-by: Eilandor Co-authored-by: Eilandor * Feature/material stats (#3136) * Add Turbine Rotors (#13) * first push * add hidden tag * Add Turbine Rotors * fix capitalization * Inconel 718 (#14) * fixed typo in LV initial quest (#3055) Signed-off-by: Eilandor * add inconel and every recipes * Add TiCl and Nerfs to energy (#3063) --------- Signed-off-by: Eilandor Co-authored-by: Eilandor * small balance * add all the materials for MoSiB * add mo 50 re * Add the fix with Forge Graddle I'm lost * weird stuffs * start adding sic * fix cutter * fix * fix conflict * fix names --------- Signed-off-by: Eilandor Co-authored-by: Eilandor * add gt modern utilities * Feature/mv hv rework (#3144) * Finally all the tools are working * plunger * revert change on tool function * fix numerous call * no coffe yet * Mv hv rework redstone fluid (reopened because git moment) (#3049) * Redstone Etching Fluid * region comments * oops, acid might be acidic * .customStill() for redstone tri p-toluenesulfonate --------- Signed-off-by: TomPlop Co-authored-by: TomPlop Co-authored-by: Pyritie * sillycon stuff * rearranged material + modification files * added missing mortars * item tag models for tools * add config for gtmutils * change how electric tools are made, so it's based off flags * Feature/mv hv rework (#3160) * Finally all the tools are working * plunger * revert change on tool function * fix numerous call * no coffe yet * trying to pin point the issue * merge issue * cast iron * merge issue * cast iron * ok * fix conflict * some fast fix * Kanthal Coil and swap PE to SR for circuits components * small update to MV Chapter * change colors of sterling silver and rose gold * Add Ceramic Circuit board (#3163) * Finally all the tools are working * plunger * revert change on tool function * fix numerous call * no coffe yet * trying to pin point the issue * merge issue * cast iron * merge issue * cast iron * ok * fix conflict * some fast fix * Kanthal Coil and swap PE to SR for circuits components * small update to MV Chapter * add ceramic circuit board sic * add quartz crucible * stuff * mostly done with recipes for boules * Solders to mv hv rework (#3168) * Add new solders * Refactor circuit recipes * Use GT Thallium * Clarify no tin alternative in ZPM * Remaining assembly line recipes * Make processes more interestinger * Add dusty lorandite * lang * Hide higher tier solder * Fix merge weirdness --------- Co-authored-by: Xikaro * Feature/mv hv rework (#3171) * Finally all the tools are working * plunger * revert change on tool function * fix numerous call * no coffe yet * trying to pin point the issue * merge issue * cast iron * merge issue * cast iron * ok * fix conflict * some fast fix * Kanthal Coil and swap PE to SR for circuits components * small update to MV Chapter * add ceramic circuit board sic * Add a whole lot * fix * enable mo_si_b * casing change * it can't require kanthal coils to cook if it's a kanthal coil ingredient * recipes + boule texture * more stuff for the boule-inator * fix circuits/change gas fuel for non renewable Reformate/fix gem slurries * change reformate * add tag to lens * tags for precision fab * fix boule tags, formatting * tweak coils a little, more to come * Add Artisan Table recipes and MV Chapter rework (#3216) * add glass lens * Artisan table and MV Chapter * change rockets and space suits, add sic_sic and move stuffs around * cleanroom more expensive/fix rods/fix ultimet/adding fluids * add desh tempered for HV coils * fix cleanroom * lower cleanroom cost * Add Mo50Re to the rocket engine * Change Desh and Armacolite * nichrome coil stuff * make ore proc use more water * perlite to distilled * add alloy smelter recipe for rubber using sulfur power as well * fix typo * Change to rutile * etching fluids * Fix a lot of stuffs (#3234) * lots * change circuit board * Remove that one that isn't necessary * Des trucs * That was hard to fix * More quests stuffs * Add MoSiB Line * fix * oups * class artisan table * Add Rocket Insulation T1 * Adding SiC SiC * Add Rocket Insulation T1 (#3247) * Add Rocket Insulation T1 * Adding SiC SiC * Fix for Fluid Pipes * Fluid pipe rework stat to be determined yet * Prepare the field for removing item pipes * removed some random pipes to test * Add SiC Rotors and some changes to Material Stats * fix no damage on tool * buff materials damage by 2 * Buff tools * Hide plastic soft hammer * remove plunger too * remove the transition item * remove useless tag and add some langfile * SiC SiC and many small things - buff tools (#3253) * Add SiC Rotors and some changes to Material Stats * fix no damage on tool * buff materials damage by 2 * Buff tools * Hide plastic soft hammer * remove plunger too * remove the transition item * remove useless tag and add some langfile * more langfile * Add MV Quests * new langfile for HV * new quests * fix quests * fix the board lang * Lots of quests stuffs (#3258) * Add MV Quests * new langfile for HV * new quests * fix quests * fix the board lang * Add fluids and fix circuits * fix circuit boards * water boiler * Small changes to exotic materials * diamond tipped tools * diamond tipped tools - lang part 1 * remove quartz crucible to core * Finish GTModern Utilities Integration for now * Allow the ability to craft the inert furnace * add some quest fix * cleanup material files * fix merge conflict --------- Signed-off-by: Eilandor Signed-off-by: TomPlop Co-authored-by: TomPlop Co-authored-by: Mqrius Co-authored-by: Eilandor Co-authored-by: Xtrial-01 Co-authored-by: Spicy Noodles <93035068+SpicyNoodle5@users.noreply.github.com> Co-authored-by: Xikaro Co-authored-by: Redeix --- .../quests/chapters/ev__extreme_voltage.snbt | 213 +++++++- .../quests/chapters/gregtech_energy.snbt | 2 +- .../quests/chapters/hv__high_voltage.snbt | 460 +++++++++++----- .../quests/chapters/lv__low_voltage.snbt | 25 +- .../quests/chapters/mv__medium_voltage.snbt | 411 ++++++++++++--- .../quests/chapters/tips__tools.snbt | 26 +- config/gtmutils.yaml | 64 +++ .../forge/models/tag/item/tools/files.json | 3 + .../forge/models/tag/item/tools/hammers.json | 3 + .../forge/models/tag/item/tools/knives.json | 3 + .../models/tag/item/tools/screwdrivers.json | 3 + .../models/item/plastic_circuit_board.json | 6 + .../item/plastic_printed_circuit_board.json | 6 + .../block/fluids/fluid.iron_iii_chloride.png | Bin 0 -> 7943 bytes .../fluids/fluid.iron_iii_chloride.png.mcmeta | 5 + .../block/fluids/fluid.sodium_persulfate.png | Bin 0 -> 11034 bytes .../fluids/fluid.sodium_persulfate.png.mcmeta | 5 + .../block/fluids/fluid.soldering_alloy.png | Bin 0 -> 10883 bytes .../fluids/fluid.soldering_alloy.png.mcmeta | 5 + .../gtceu/textures/block/fluids/fluid.tin.png | Bin 0 -> 10852 bytes .../block/fluids/fluid.tin.png.mcmeta | 5 + kubejs/assets/tfc/models/tag/item/saws.json | 3 + kubejs/assets/tfg/lang/en_us.json | 118 ++++- .../block/casings/sterling_silver_casing.png | Bin 542 -> 357 bytes .../block/casings/sterling_silver_casing2.png | Bin 0 -> 542 bytes .../sterling_silver_casing2.png.mcmeta | 5 + .../casings/sterling_silver_casing2_ctm.png | Bin 0 -> 1102 bytes .../casings/sterling_silver_casing_ctm.png | Bin 1102 -> 656 bytes .../block/fluids/fluid.bi_pb_sn_cd_in_tl.png | Bin 0 -> 11892 bytes .../fluids/fluid.bi_pb_sn_cd_in_tl.png.mcmeta | 5 + .../fluid.redstone_tri_p_toluenesulfonate.png | Bin 0 -> 9457 bytes ...redstone_tri_p_toluenesulfonate.png.mcmeta | 5 + .../block/fluids/fluid.woods_metal.png | Bin 0 -> 11021 bytes .../block/fluids/fluid.woods_metal.png.mcmeta | 5 + .../gui/artisan_table/glass_border.png | Bin 0 -> 5008 bytes .../gui/artisan_table/glass_chipped.png | Bin 0 -> 273 bytes .../gui/progress_bar/progress_bar_boule.png | Bin 0 -> 409 bytes .../textures/item/blue_alloy_desh_foil.png | Bin 0 -> 546 bytes .../textures/item/ceramic_circuit_board.png | Bin 0 -> 343 bytes .../item/ceramic_printed_circuit_board.png | Bin 0 -> 453 bytes .../item/chorus_ceramic_insulation.png | Bin 0 -> 398 bytes .../textures/item/chromium_bonded_beo_pcb.png | Bin 0 -> 4438 bytes .../textures/item/copper_bonded_al2o3_pcb.png | Bin 0 -> 4441 bytes .../item/fired_chorus_ceramic_insulation.png | Bin 0 -> 409 bytes .../item/mo_activated_sic_substrate.png | Bin 0 -> 4430 bytes .../item/optical_borosilicate_blank.png | Bin 0 -> 723 bytes .../textures/item/silicon_seed_crystal.png | Bin 0 -> 367 bytes .../worked_optical_borosilicate_blank.png | Bin 0 -> 283 bytes kubejs/client_scripts/tooltips.js | 14 +- kubejs/server_scripts/gregtech/recipes.js | 66 +-- .../gregtech/recipes.machines.js | 8 +- .../gtmoderntuilities/recipes.js | 27 + .../server_scripts/gtmoderntuilities/tags.js | 19 + kubejs/server_scripts/main_server_script.js | 4 + kubejs/server_scripts/tacz/recipes.attach.js | 12 +- kubejs/server_scripts/tacz/recipes.guns.js | 4 +- kubejs/server_scripts/tfg/data.js | 1 + .../tfg/hv_rework/material.recipes.js | 214 ++++++++ .../tfg/machines/recipes.boules.js | 128 +++++ .../tfg/machines/recipes.casings.js | 31 ++ .../tfg/machines/recipes.circuit_board.js | 167 ++++++ .../tfg/machines/recipes.circuits.js | 281 ++++++++++ .../tfg/machines/recipes.coils.js | 72 ++- .../tfg/machines/recipes.components.js | 38 -- .../tfg/machines/recipes.etching.js | 65 +++ .../tfg/machines/recipes.multiblocks.js | 13 + .../server_scripts/tfg/mars/recipes.ostrum.js | 11 + .../tfg/mv_rework/material.recipes.js | 151 ++++++ .../tfg/ores_and_materials/recipes.alloys.js | 7 + .../recipes.gem_slurries.js | 62 +++ .../recipes.material_ores.js | 16 +- .../recipes.material_tag_prefixes.js | 4 +- .../recipes.material_tools.js | 23 +- .../ores_and_materials/recipes.materials.js | 83 ++- .../tfg/ores_and_materials/recipes.mo_si_b.js | 110 ++++ .../recipes.pipes_hidden.js | 125 +++++ .../ores_and_materials/recipes.zirconium.js | 13 +- .../tfg/ores_and_materials/tags.materials.js | 18 + .../tfg/powergen/nuclear/recipes.nuclear.js | 4 +- .../tfg/powergen/recipes.early_gas.js | 6 +- .../tfg/primitive/recipes.artisan_table.js | 16 + .../tfg/primitive/recipes.rubber.js | 7 + .../tfg/primitive/tags.primitive.js | 5 + kubejs/server_scripts/tfg/recipes.js | 10 + .../server_scripts/tfg/recipes.temporary.js | 18 - .../tfg/space_general/recipes.rockets.js | 79 ++- .../tfg/space_general/recipes.space.js | 28 +- .../tfg/space_general/recipes.space_suits.js | 2 +- kubejs/server_scripts/tfg/tags.js | 48 +- .../tfg/venus/recipes.biochem.js | 2 +- .../vintage_improvements/recipes.js | 20 - kubejs/startup_scripts/gtceu/constants.js | 3 + .../gtceu/material_modification.js | 495 ------------------ .../gtmoderntuilities/constants.js | 18 + kubejs/startup_scripts/main_startup_script.js | 2 +- kubejs/startup_scripts/tfg/blocks.js | 1 - kubejs/startup_scripts/tfg/items.js | 24 + .../tfg/mars/materials.mars.js | 20 +- .../tfg/material_modification.js | 13 + kubejs/startup_scripts/tfg/materials.js | 192 +------ .../materials/material_modification.colors.js | 63 +++ .../material_modification.components.js | 10 + .../materials/material_modification.flags.js | 199 +++++++ .../materials/material_modification.fluids.js | 17 + .../materials/material_modification.ores.js | 33 ++ .../material_modification.properties.js | 65 +++ .../materials/material_modification.tfc.js | 76 +++ .../materials/material_modification.tools.js | 434 +++++++++++++++ .../tfg/materials/materials.alumina.js | 41 ++ .../tfg/materials/materials.bakelite.js | 23 + .../tfg/materials/materials.boules.js | 42 ++ .../tfg/materials/materials.coils.js | 50 ++ .../tfg/materials/materials.etching.js | 69 +++ .../tfg/materials/materials.gem_slurries.js | 20 + .../tfg/materials/materials.misc_alloys.js | 85 +++ .../{ => materials}/materials.power_rework.js | 0 .../tfg/materials/materials.refrigerants.js | 25 + .../tfg/materials/materials.rotors.js | 169 ++++++ .../tfg/materials/materials.solders.js | 48 ++ .../tfg/materials/materials.tungsten.js | 33 ++ .../tfg/materials/materials.zirconium.js | 45 ++ .../tfg/moon/materials.moon.js | 15 +- .../tfg/nuclear/materials.nuclear.js | 85 +-- .../tfg/primitive/materials.primitive.js | 1 + .../tfg/space_general/materials.rockets.js | 46 +- .../tfg/stone_types/materials.rocks.js | 50 +- kubejs/startup_scripts/tfg/tag_prefixes.js | 74 +++ pakku-lock.json | 131 +++++ 128 files changed, 4877 insertions(+), 1258 deletions(-) create mode 100644 config/gtmutils.yaml create mode 100644 kubejs/assets/forge/models/tag/item/tools/files.json create mode 100644 kubejs/assets/forge/models/tag/item/tools/hammers.json create mode 100644 kubejs/assets/forge/models/tag/item/tools/knives.json create mode 100644 kubejs/assets/forge/models/tag/item/tools/screwdrivers.json create mode 100644 kubejs/assets/gtceu/models/item/plastic_circuit_board.json create mode 100644 kubejs/assets/gtceu/models/item/plastic_printed_circuit_board.json create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.iron_iii_chloride.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.iron_iii_chloride.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.sodium_persulfate.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.sodium_persulfate.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.soldering_alloy.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.soldering_alloy.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.tin.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.tin.png.mcmeta create mode 100644 kubejs/assets/tfc/models/tag/item/saws.json create mode 100644 kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2.png create mode 100644 kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2_ctm.png create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.bi_pb_sn_cd_in_tl.png create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.bi_pb_sn_cd_in_tl.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.redstone_tri_p_toluenesulfonate.png create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.redstone_tri_p_toluenesulfonate.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.woods_metal.png create mode 100644 kubejs/assets/tfg/textures/block/fluids/fluid.woods_metal.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/gui/artisan_table/glass_border.png create mode 100644 kubejs/assets/tfg/textures/gui/artisan_table/glass_chipped.png create mode 100644 kubejs/assets/tfg/textures/gui/progress_bar/progress_bar_boule.png create mode 100644 kubejs/assets/tfg/textures/item/blue_alloy_desh_foil.png create mode 100644 kubejs/assets/tfg/textures/item/ceramic_circuit_board.png create mode 100644 kubejs/assets/tfg/textures/item/ceramic_printed_circuit_board.png create mode 100644 kubejs/assets/tfg/textures/item/chorus_ceramic_insulation.png create mode 100644 kubejs/assets/tfg/textures/item/chromium_bonded_beo_pcb.png create mode 100644 kubejs/assets/tfg/textures/item/copper_bonded_al2o3_pcb.png create mode 100644 kubejs/assets/tfg/textures/item/fired_chorus_ceramic_insulation.png create mode 100644 kubejs/assets/tfg/textures/item/mo_activated_sic_substrate.png create mode 100644 kubejs/assets/tfg/textures/item/optical_borosilicate_blank.png create mode 100644 kubejs/assets/tfg/textures/item/silicon_seed_crystal.png create mode 100644 kubejs/assets/tfg/textures/item/worked_optical_borosilicate_blank.png create mode 100644 kubejs/server_scripts/gtmoderntuilities/recipes.js create mode 100644 kubejs/server_scripts/gtmoderntuilities/tags.js create mode 100644 kubejs/server_scripts/tfg/hv_rework/material.recipes.js create mode 100644 kubejs/server_scripts/tfg/machines/recipes.boules.js create mode 100644 kubejs/server_scripts/tfg/machines/recipes.circuit_board.js create mode 100644 kubejs/server_scripts/tfg/machines/recipes.circuits.js create mode 100644 kubejs/server_scripts/tfg/machines/recipes.etching.js create mode 100644 kubejs/server_scripts/tfg/mv_rework/material.recipes.js create mode 100644 kubejs/server_scripts/tfg/ores_and_materials/recipes.gem_slurries.js create mode 100644 kubejs/server_scripts/tfg/ores_and_materials/recipes.mo_si_b.js create mode 100644 kubejs/server_scripts/tfg/ores_and_materials/recipes.pipes_hidden.js create mode 100644 kubejs/server_scripts/tfg/ores_and_materials/tags.materials.js delete mode 100644 kubejs/startup_scripts/gtceu/material_modification.js create mode 100644 kubejs/startup_scripts/gtmoderntuilities/constants.js create mode 100644 kubejs/startup_scripts/tfg/material_modification.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.colors.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.components.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.flags.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.fluids.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.ores.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.properties.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.tfc.js create mode 100644 kubejs/startup_scripts/tfg/materials/material_modification.tools.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.alumina.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.bakelite.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.boules.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.coils.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.etching.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.gem_slurries.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.misc_alloys.js rename kubejs/startup_scripts/tfg/{ => materials}/materials.power_rework.js (100%) create mode 100644 kubejs/startup_scripts/tfg/materials/materials.refrigerants.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.rotors.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.solders.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.tungsten.js create mode 100644 kubejs/startup_scripts/tfg/materials/materials.zirconium.js diff --git a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt index 614ae60a1..38fd2ace2 100644 --- a/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt +++ b/config/ftbquests/quests/chapters/ev__extreme_voltage.snbt @@ -33,20 +33,20 @@ linked_quest: "0CA5B715B76E4A5B" shape: "diamond" x: 13.0d - y: 1.5d + y: 1.0d } { id: "6058CD9466BE0852" linked_quest: "00202200344F3456" - x: 12.5d - y: 3.0d + x: 13.0d + y: 2.0d } { id: "49FB3507B0FB3000" linked_quest: "155F421FC2F39C3C" shape: "diamond" - x: 11.5d - y: 1.5d + x: 10.0d + y: 2.0d } { id: "7FDAA0AA0D463A49" @@ -372,7 +372,7 @@ type: "item" }] x: 14.5d - y: 0.0d + y: -1.0d } { dependencies: ["4EA8888B12D75BF1"] @@ -433,7 +433,7 @@ item: "gtceu:rtm_alloy_coil_block" type: "item" }] - x: 10.0d + x: 8.5d y: 3.0d } { @@ -488,8 +488,8 @@ } ] title: "{quests.extreme_voltage.gcym_alloys.title}" - x: 10.0d - y: 0.0d + x: 8.5d + y: -1.0d } { dependencies: ["7B2EE67E37809269"] @@ -537,7 +537,7 @@ type: "item" }] x: 17.5d - y: 0.0d + y: -1.0d } { dependencies: [ @@ -1218,7 +1218,7 @@ ] title: "{quests.extreme_voltage.ostrum_harvester.title}" x: 14.5d - y: 1.5d + y: 1.0d } { dependencies: ["017019EB38F7A18C"] @@ -2015,8 +2015,8 @@ type: "item" }] title: "{quests.extreme_voltage.large_miner.title}" - x: 9.5d - y: -4.5d + x: 7.0d + y: -6.0d } { dependencies: ["2979AFD231E5B37B"] @@ -2250,8 +2250,8 @@ type: "item" }] title: "{quests.extreme_voltage.advanced_fluid_rig.title}" - x: 7.0d - y: -6.0d + x: 9.75d + y: -4.5d } { dependencies: ["5CF58F7CBE255585"] @@ -2278,7 +2278,7 @@ type: "item" }] title: "{quests.extreme_voltage.large_generators.title}" - x: 2.0d + x: 3.0d y: 4.5d } { @@ -2400,7 +2400,7 @@ } ] title: "{quests.extreme_voltage.nichromium_iode.title}" - x: 11.5d + x: 10.0d y: 3.0d } { @@ -2418,6 +2418,185 @@ x: 1.5d y: 8.5d } + { + dependencies: ["5EC5566546591DEE"] + icon: { + Count: 1 + id: "gtceu:ev_tungsten_carbide_drill" + tag: { + Charge: 2147483647L + Damage: 0 + DisallowContainerItem: 0b + GT.Behaviours: { + AoEColumn: 3 + AoELayer: 6 + AoERow: 3 + MaxAoEColumn: 3 + MaxAoELayer: 6 + MaxAoERow: 3 + TorchPlacing: 1b + } + GT.Tool: { + DefaultEnchantments: [ ] + HarvestLevel: 4 + MaxDamage: 6143 + ToolSpeed: 36.0f + } + HideFlags: 2 + MaxCharge: 2147483647L + } + } + id: "77126BE617215A17" + optional: true + shape: "heart" + tasks: [ + { + id: "639039222D6F4B30" + item: "gtceu:tungsten_carbide_ingot" + type: "item" + } + { + id: "3B578E54D11D2CA5" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:ev_tungsten_carbide_drill)item(gtceu:ev_tungsten_carbide_screwdriver)item(gtceu:ev_tungsten_carbide_wrench)item(gtceu:ev_tungsten_carbide_chainsaw)item(gtceu:ev_tungsten_carbide_buzzsaw)item(gtceu:ev_tungsten_carbide_wire_cutter))" + } + } + optional_task: true + type: "item" + } + ] + x: 5.5d + y: -5.5d + } + { + dependencies: ["7F4E529627AD9148"] + icon: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "tfg:tungsten_bismuth_oxide_composite" + } + } + } + id: "4C5311FA9B46D115" + optional: true + shape: "heart" + tasks: [ + { + id: "4D980D7F2A4B5731" + item: "tfg:tungsten_bismuth_oxide_composite_ingot" + type: "item" + } + { + id: "23C3B067A4087DA2" + item: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "tfg:tungsten_bismuth_oxide_composite" + } + } + } + optional_task: true + type: "item" + } + ] + x: 8.5d + y: 4.5d + } + { + dependencies: ["5FA09DA68D309548"] + icon: { + Count: 1 + id: "gtceu:ev_ostrum_iodide_wrench" + tag: { + Charge: 2147483647L + Damage: 0 + DisallowContainerItem: 0b + GT.Behaviours: { + Mode: 2b + } + GT.Tool: { + DefaultEnchantments: [ ] + HarvestLevel: 4 + MaxDamage: 3095 + ToolSpeed: 94.0f + } + HideFlags: 2 + MaxCharge: 2147483647L + } + } + id: "21A1AB93A5B6F729" + optional: true + shape: "heart" + tasks: [ + { + id: "5E09DBF8B5973CA6" + item: "gtceu:ostrum_iodide_ingot" + type: "item" + } + { + id: "318864D5687CE68B" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:ev_ostrum_iodide_drill)item(gtceu:ev_ostrum_iodide_screwdriver)item(gtceu:ev_ostrum_iodide_wrench)item(gtceu:ev_ostrum_iodide_chainsaw)item(gtceu:ev_ostrum_iodide_buzzsaw)item(gtceu:ev_ostrum_iodide_wire_cutter))" + } + } + type: "item" + } + ] + x: 13.0d + y: 3.0d + } + { + dependencies: ["52AB0BDC64293253"] + id: "2DA61F29B0CB6141" + optional: true + shape: "heart" + tasks: [{ + id: "62FB9023A96410C3" + item: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "gtceu:rocket_alloy_t2" + } + } + } + type: "item" + }] + x: -5.5d + y: 4.5d + } + { + dependencies: ["691A36800DC755C1"] + id: "65B835976B0AA1E9" + optional: true + shape: "heart" + tasks: [{ + id: "3080CD336ACCEE9E" + item: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "tfg:mo_si_b" + } + } + } + type: "item" + }] + x: 23.5d + y: 4.5d + } ] subtitle: ["{quests.extreme_voltage.subtitle}"] title: "{quests.extreme_voltage}" diff --git a/config/ftbquests/quests/chapters/gregtech_energy.snbt b/config/ftbquests/quests/chapters/gregtech_energy.snbt index 85be931fc..a4ce3596f 100644 --- a/config/ftbquests/quests/chapters/gregtech_energy.snbt +++ b/config/ftbquests/quests/chapters/gregtech_energy.snbt @@ -815,8 +815,8 @@ dependencies: [ "109C57B63EE95E35" "5826EC76931359B8" - "00A2566109144D7F" "4D0ADC66D2CF09B1" + "670FC89E34D70E3C" ] dependency_requirement: "one_completed" description: [ diff --git a/config/ftbquests/quests/chapters/hv__high_voltage.snbt b/config/ftbquests/quests/chapters/hv__high_voltage.snbt index 9c349efe9..26d281730 100644 --- a/config/ftbquests/quests/chapters/hv__high_voltage.snbt +++ b/config/ftbquests/quests/chapters/hv__high_voltage.snbt @@ -10,19 +10,19 @@ { id: "2583D0B64E51FAC8" linked_quest: "5063FDFFBE3E4855" - x: 2.5d - y: -8.5d + x: 0.0d + y: -11.0d } { id: "308E11BE764398A1" linked_quest: "7C1FD81C5DCFB74E" - x: -8.0d + x: 23.0d y: -8.5d } { id: "33D3C2A9337335D2" linked_quest: "493D733A5438DD7E" - x: 10.0d + x: 11.0d y: 0.0d } { @@ -30,34 +30,35 @@ linked_quest: "396E85A39FF414CF" shape: "gear" size: 2.0d - x: 13.0d + x: 14.0d y: -6.0d } { id: "4A902B3F8AE331AC" linked_quest: "5D188F6C46EA9ED0" - x: -6.0d - y: -3.0d + shape: "heart" + x: 21.5d + y: 8.5d } { id: "513464FBE4A87CB7" linked_quest: "3A2E442E4D84C891" shape: "octagon" size: 2.0d - x: 0.0d + x: 2.5d y: -11.0d } { id: "1B29194F9C306CFE" linked_quest: "36B9B5024356C53C" - x: 0.0d - y: -13.0d + x: 5.0d + y: -11.0d } { id: "3274381865E7D011" linked_quest: "0585527D1854628B" - x: 14.0d - y: 1.5d + x: 19.5d + y: -6.0d } ] quests: [ @@ -74,7 +75,7 @@ type: "item" }] title: "{quests.high_voltage.energium_crystals.title}" - x: -3.0d + x: -3.5d y: -4.0d } { @@ -91,7 +92,7 @@ type: "item" }] title: "{quests.high_voltage.autoclave.title}" - x: -2.0d + x: -2.5d y: -4.0d } { @@ -108,8 +109,8 @@ type: "item" }] title: "{quests.high_voltage.chem_bath.title}" - x: -2.0d - y: 0.0d + x: -2.5d + y: 0.5d } { dependencies: ["52AD30F04DD5A812"] @@ -136,7 +137,7 @@ } ] title: "{quests.high_voltage.maintenance_hatches.title}" - x: -2.0d + x: -2.5d y: -3.0d } { @@ -188,7 +189,7 @@ } ] title: "{quests.high_voltage.hv_components.title}" - x: -2.0d + x: -2.5d y: -2.0d } { @@ -235,8 +236,8 @@ } ] title: "{quests.high_voltage.lenses.title}" - x: -2.0d - y: 1.5d + x: -2.5d + y: 2.0d } { dependencies: ["6975F16F5B50F17F"] @@ -250,8 +251,8 @@ type: "item" }] title: "{quests.high_voltage.ulv_circuits.title}" - x: -3.5d - y: 1.5d + x: -4.0d + y: 2.0d } { dependencies: [ @@ -261,6 +262,8 @@ description: ["{quests.high_voltage.hv_energy_hatch.desc}"] icon: "gtceu:hv_energy_input_hatch" id: "5DBBD9B1F5B01F4E" + shape: "octagon" + size: 1.5d subtitle: "{quests.high_voltage.hv_energy_hatch.subtitle}" tasks: [ { @@ -306,14 +309,22 @@ shape: "square" size: 1.0d subtitle: "{quests.high_voltage.rutile_loop.subtitle}" - tasks: [{ - id: "5593109F3592A432" - item: "gtceu:rutile_dust" - type: "item" - }] + tasks: [ + { + id: "5593109F3592A432" + item: "gtceu:rutile_dust" + type: "item" + } + { + id: "11062B6B87452CE0" + item: "gtceu:bauxite_slurry_bucket" + optional_task: true + type: "item" + } + ] title: "{quests.high_voltage.rutile_loop.title}" - x: -7.0d - y: 3.0d + x: 2.0d + y: 7.0d } { dependencies: [ @@ -343,8 +354,8 @@ } ] title: "{quests.high_voltage.rutile_loop_2.title}" - x: -5.0d - y: 3.0d + x: 3.5d + y: 7.0d } { dependencies: ["6B08799BCFD01D3D"] @@ -360,11 +371,16 @@ type: "item" }] title: "{quests.high_voltage.superconductors.title}" - x: -8.0d - y: -11.0d + x: 22.5d + y: -2.5d } { - dependencies: ["7E755297E9685374"] + dependencies: [ + "7E755297E9685374" + "578ECB10B30A77C7" + "2F77122B74877BED" + "09C63B0E303AD8FD" + ] description: [ "{quests.high_voltage.nichrome_coils.desc.1}" "{@pagebreak}" @@ -372,7 +388,8 @@ ] icon: "gtceu:nichrome_coil_block" id: "6B08799BCFD01D3D" - size: 1.0d + shape: "octagon" + size: 1.5d subtitle: "{quests.high_voltage.nichrome_coils.subtitle}" tasks: [{ count: 16L @@ -381,13 +398,13 @@ type: "item" }] title: "{quests.high_voltage.nichrome_coils.title}" - x: -6.5d - y: -11.0d + x: 21.0d + y: -2.0d } { dependencies: [ - "6958029B5514D4EC" "727075AAF9F91FAE" + "6B08799BCFD01D3D" ] description: ["{quests.high_voltage.titanium.desc}"] icon: "gtceu:titanium_ingot" @@ -400,8 +417,8 @@ type: "item" }] title: "{quests.high_voltage.titanium.title}" - x: -5.0d - y: -2.0d + x: 21.0d + y: 7.0d } { dependencies: ["6A451F43F3D7A671"] @@ -417,26 +434,9 @@ type: "item" }] title: "{quests.high_voltage.vacuum_freezer.title}" - x: -5.0d + x: 21.0d y: -8.5d } - { - dependencies: ["124B32A0583A636A"] - description: ["{quests.high_voltage.mv_superconductors.desc}"] - icon: "gtceu:magnesium_diboride_double_wire" - id: "72F0DFAF5CC6D0FE" - optional: true - shape: "heart" - size: 1.0d - tasks: [{ - id: "4CCBDA5AC16CBB48" - item: "gtceu:magnesium_diboride_single_wire" - type: "item" - }] - title: "{quests.high_voltage.mv_superconductors.title}" - x: -3.5d - y: 0.0d - } { dependencies: ["41D32C5178760F47"] description: ["{quests.high_voltage.circuit_assembler.desc}"] @@ -451,8 +451,8 @@ type: "item" }] title: "{quests.high_voltage.circuit_assembler.title}" - x: 10.0d - y: 2.0d + x: 9.0d + y: 3.0d } { dependencies: [ @@ -470,8 +470,8 @@ type: "item" }] title: "{quests.high_voltage.vitrified_pearl.title}" - x: 6.0d - y: 2.0d + x: 6.5d + y: 3.0d } { dependencies: ["52AD30F04DD5A812"] @@ -543,8 +543,8 @@ type: "item" }] title: "{quests.high_voltage.prospector.title}" - x: 7.0d - y: 1.0d + x: 7.5d + y: 2.0d } { description: ["{quests.high_voltage.fluorine.desc}"] @@ -566,8 +566,8 @@ } ] title: "{quests.high_voltage.fluorine.title}" - x: 1.5d - y: 4.0d + x: -1.0d + y: 5.0d } { dependencies: [ @@ -625,7 +625,7 @@ } ] title: "{quests.high_voltage.nitrobenzene.title}" - x: -3.5d + x: -4.5d y: 6.0d } { @@ -688,7 +688,7 @@ }] title: "{quests.high_voltage.tnt.title}" x: 3.5d - y: 3.5d + y: 4.5d } { dependencies: [ @@ -717,7 +717,7 @@ ] title: "{quests.high_voltage.ender_pearls.title}" x: 3.5d - y: 2.0d + y: 3.0d } { dependencies: ["3568BC9742092FC5"] @@ -739,7 +739,7 @@ } ] title: "{quests.high_voltage.boules.title}" - x: -2.0d + x: -2.5d y: -6.0d } { @@ -754,7 +754,7 @@ }] title: "{quests.high_voltage.implosion_compressor.title}" x: 2.0d - y: 2.0d + y: 3.0d } { dependencies: [ @@ -785,7 +785,7 @@ } ] title: "{quests.high_voltage.nitric_acid.title}" - x: -2.0d + x: -2.5d y: 7.0d } { @@ -811,7 +811,7 @@ } ] title: "{quests.high_voltage.cetane_diesel.title}" - x: -3.5d + x: -4.5d y: 8.0d } { @@ -888,7 +888,7 @@ }] title: "{quests.high_voltage.hv_macerator.title}" x: 2.0d - y: 0.0d + y: 0.5d } { dependencies: ["390E59F05132FCB8"] @@ -910,7 +910,7 @@ } ] title: "{quests.high_voltage.ammonia.title}" - x: -2.0d + x: -2.5d y: 4.5d } { @@ -948,8 +948,8 @@ type: "item" }] title: "{quests.high_voltage.blue_alloy.title}" - x: 1.0d - y: -7.5d + x: -1.5d + y: -10.0d } { dependencies: [ @@ -1004,8 +1004,8 @@ type: "item" }] title: "{quests.high_voltage.nichrome.title}" - x: -5.0d - y: -11.0d + x: 21.0d + y: -6.0d } { dependencies: [ @@ -1039,7 +1039,7 @@ type: "item" }] title: "{quests.high_voltage.rocket_t1.title}" - x: 8.0d + x: 9.0d y: -2.0d } { @@ -1085,7 +1085,7 @@ item: "ad_astra:rocket_nose_cone" type: "item" }] - x: 6.0d + x: 6.5d y: -1.0d } { @@ -1101,8 +1101,8 @@ type: "item" }] title: "{quests.high_voltage.ev_machine_hull.title}" - x: -9.0d - y: -2.0d + x: 24.0d + y: 2.0d } { dependencies: ["56D337E264A4154F"] @@ -1116,7 +1116,7 @@ type: "item" }] title: "Rocket Fins" - x: 6.0d + x: 6.5d y: -2.0d } { @@ -1129,7 +1129,7 @@ item: "ad_astra:steel_engine" type: "item" }] - x: 6.0d + x: 6.5d y: -3.0d } { @@ -1144,7 +1144,7 @@ type: "item" }] title: "{quests.high_voltage.rocket_fuel.title}" - x: 10.0d + x: 11.0d y: -2.0d } { @@ -1171,7 +1171,7 @@ type: "dimension" }] title: "{quests.high_voltage.welcome_moon.title}" - x: 13.0d + x: 14.0d y: -2.0d } { @@ -1245,7 +1245,7 @@ } ] title: "{quests.high_voltage.space_suit.title}" - x: 10.0d + x: 11.0d y: -1.0d } { @@ -1259,7 +1259,7 @@ item: "ad_astra:launch_pad" type: "item" }] - x: 10.0d + x: 11.0d y: -3.0d } { @@ -1282,7 +1282,7 @@ type: "checkmark" }] title: "{quests.high_voltage.linked_quest_energy.title}" - x: -5.0d + x: -6.5d y: 7.0d } { @@ -1297,8 +1297,8 @@ type: "item" }] title: "{quests.high_voltage.kaolinite_powder.title}" - x: 6.0d - y: 3.5d + x: 6.5d + y: 4.5d } { dependencies: ["3FBDC8552F7D8008"] @@ -1375,7 +1375,7 @@ } ] title: "{quests.high_voltage.gun.title}" - x: 10.0d + x: 9.0d y: -4.0d } { @@ -1391,7 +1391,7 @@ }] title: "{quests.high_voltage.space_survival.title}" x: 12.0d - y: 1.5d + y: -4.0d } { dependencies: ["00A2566109144D7F"] @@ -1406,31 +1406,24 @@ type: "item" }] title: "{quests.high_voltage.moon_harvester.title}" - x: 16.0d - y: -2.0d + x: 14.0d + y: 3.0d } { - dependencies: ["6A21CCAEB1FDF38E"] + dependencies: ["00A2566109144D7F"] description: ["{quests.high_voltage.regolith_vapor.desc}"] icon: "gtceu:regolith_vapor_bucket" id: "578ECB10B30A77C7" subtitle: "{quests.high_voltage.regolith_vapor.subtitle}" - tasks: [ - { - id: "0FF209271DB58067" - item: "gtceu:regolith_vapor_bucket" - optional_task: true - type: "item" - } - { - id: "32E19F49E3A2D54B" - title: "{quests.high_voltage.regolith_vapor.task}" - type: "checkmark" - } - ] + tasks: [{ + id: "0FF209271DB58067" + item: "gtceu:regolith_vapor_bucket" + optional_task: true + type: "item" + }] title: "{quests.high_voltage.regolith_vapor.title}" - x: 17.5d - y: -2.5d + x: 18.0d + y: -1.0d } { dependencies: ["6A21CCAEB1FDF38E"] @@ -1460,8 +1453,8 @@ } ] title: "{quests.high_voltage.regolith_dust.title}" - x: 17.5d - y: -1.5d + x: 16.0d + y: 3.0d } { dependencies: [ @@ -1484,13 +1477,16 @@ type: "item" }] title: "{quests.high_voltage.dusty_ores.title}" - x: 18.5d - y: -2.0d + x: 18.0d + y: 3.0d } { dependencies: ["5807400FD1F0998A"] description: ["{quests.high_voltage.final_dust.desc}"] id: "36FE3DDBCB535639" + optional: true + shape: "heart" + size: 1.25d subtitle: "{quests.high_voltage.final_dust.subtitle}" tasks: [ { @@ -1561,8 +1557,8 @@ } ] title: "{quests.high_voltage.final_dust.title}" - x: 19.5d - y: -2.0d + x: 18.0d + y: 5.0d } { dependencies: ["396E85A39FF414CF"] @@ -1583,8 +1579,8 @@ type: "item" }] title: "{quests.high_voltage.wand.title}" - x: 14.5d - y: -7.5d + x: 16.0d + y: -6.0d } { dependencies: ["396E85A39FF414CF"] @@ -1606,8 +1602,8 @@ } ] title: "{quests.high_voltage.hypertubes.title}" - x: 11.5d - y: -7.5d + x: 12.0d + y: -6.0d } { dependencies: ["16B735F9C391D260"] @@ -1665,8 +1661,8 @@ } ] title: "{quests.high_voltage.titanium_greate.title}" - x: -6.0d - y: -1.0d + x: 20.5d + y: 8.5d } { dependencies: ["36B9B5024356C53C"] @@ -1685,8 +1681,8 @@ type: "item" }] title: "{quests.gregtech_energy.reformate_gas.title}" - x: -1.5d - y: -13.0d + x: 6.5d + y: -11.0d } { dependencies: ["6A451F43F3D7A671"] @@ -1709,8 +1705,8 @@ type: "item" }] title: "{quests.high_voltage.pisciculture.title}" - x: -2.25d - y: -11.0d + x: -2.0d + y: -8.5d } { dependencies: ["41D32C5178760F47"] @@ -1724,8 +1720,214 @@ item: "gtceuterminal:multi_structure_manager" type: "item" }] + x: 5.5d + y: 2.0d + } + { + dependencies: ["05ABC370D7153350"] + description: ["{quest.high_voltage.ultimet.desc}"] + icon: "gtceu:ultimet_ingot" + id: "4C25552DC291F49A" + subtitle: "{quest.high_voltage.ultimet.subtitle}" + tasks: [ + { + id: "5C9F46F926EC071B" + item: "gtceu:ultimet_dust" + type: "item" + } + { + id: "27A6C576F7AFFB67" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:hv_ultimet_drill)item(gtceu:hv_ultimet_buzzsaw)item(gtceu:hv_ultimet_screwdriver)item(gtceu:hv_ultimet_wire_cutter)item(gtceu:hv_ultimet_chainsaw)item(gtceu:hv_ultimet_wrench))" + } + } + optional_task: true + title: "{quest.high_voltage.ultimet.task}" + type: "item" + } + { + id: "6B62C1679EE0757A" + item: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "gtceu:ultimet" + } + } + } + optional_task: true + type: "item" + } + ] + title: "{quest.high_voltage.ultimet.title}" + x: 3.5d + y: -3.0d + } + { + dependencies: ["6958029B5514D4EC"] + description: ["{quests.high_voltage.boron_tools.desc}"] + icon: { + Count: 1 + id: "tfg:hv_boron_carbide_screwdriver" + tag: { + Damage: 0 + GT.Behaviours: { } + GT.Tool: { + AttackDamage: 8.0f + AttackSpeed: 3.0f + DefaultEnchantments: [ ] + MaxDamage: 3678 + } + } + } + id: "09DEA21F91BE054E" + optional: true + shape: "heart" + subtitle: "{quests.high_voltage.boron_tools.subtitle}" + tasks: [ + { + id: "2018B029C5FDC092" + item: "tfg:boron_carbide_dust" + type: "item" + } + { + id: "31F5C6763E32046A" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(tfg:hv_boron_carbide_drill)item(tfg:hv_boron_carbide_buzzsaw)item(tfg:hv_boron_carbide_screwdriver)item(tfg:hv_boron_carbide_wire_cutter)item(tfg:hv_boron_carbide_chainsaw)item(tfg:hv_boron_carbide_wrench))" + } + } + optional_task: true + title: "{quests.high_voltage.boron_tools.task}" + type: "item" + } + ] + title: "{quests.high_voltage.boron_tools.title}" + x: 21.0d + y: -11.0d + } + { + dependencies: ["56D337E264A4154F"] + description: ["{quest.high_voltage.r_alumino_rotor.desc}"] + id: "27EDE5F476EA628D" + optional: true + shape: "heart" + subtitle: "{quest.high_voltage.r_alumino_rotor.subtitle}" + tasks: [{ + id: "78E2E00B6BBBCB6D" + item: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "gtceu:rocket_alloy_t1" + } + } + } + type: "item" + }] x: 5.0d - y: 1.0d + y: -1.0d + } + { + dependencies: [ + "00A2566109144D7F" + "670FC89E34D70E3C" + ] + description: ["{quest.high_voltage.desh_blue_foils.desc}"] + id: "09C63B0E303AD8FD" + subtitle: "{quest.high_voltage.desh_blue_foils.subtitle}" + tasks: [{ + id: "0940FA8EC1C38BC3" + item: "tfg:blue_alloy_desh_foil" + type: "item" + }] + x: 18.0d + y: -3.0d + } + { + dependencies: ["00A2566109144D7F"] + description: ["{quest.high_voltage.chorus_insulation.desc}"] + icon: "tfg:fired_chorus_ceramic_insulation" + id: "2F77122B74877BED" + subtitle: "{quest.high_voltage.chorus_insulation.subtitle}" + tasks: [ + { + id: "5AF6BCBF6039F43F" + item: "tfg:chorus_ceramic_insulation" + optional_task: true + type: "item" + } + { + id: "1279C5E1F2563A60" + item: "tfg:fired_chorus_ceramic_insulation" + type: "item" + } + ] + x: 18.0d + y: -2.0d + } + { + dependencies: [ + "00A2566109144D7F" + "6958029B5514D4EC" + ] + description: ["{quest.high_voltage.desh_ingot.desc}"] + icon: "ad_astra:desh_ingot" + id: "670FC89E34D70E3C" + subtitle: "{quest.high_voltage.desh_ingot.subtitle}" + tasks: [ + { + id: "1AF2669CD2F3DCAA" + item: "ad_astra:desh_ingot" + type: "item" + } + { + id: "257AD0E5DBC1F3CE" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:poor_raw_desh)item(ad_astra:raw_desh)item(gtceu:rich_raw_desh))" + } + } + optional_task: true + title: "{quest.high_voltage.desh_ingot.task}" + type: "item" + } + ] + title: "{quest.high_voltage.desh_ingot.title}" + x: 18.0d + y: -6.0d + } + { + dependencies: ["6B08799BCFD01D3D"] + description: ["{quest.high_voltage.inconel_rotor.desc}"] + id: "661D2E50F56EA5AD" + optional: true + shape: "heart" + subtitle: "{quest.high_voltage.inconel_rotor.subtitle}" + tasks: [{ + id: "05CAAD3F517F551D" + item: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "tfg:inconel_718" + } + } + } + type: "item" + }] + x: 22.5d + y: -1.5d } ] subtitle: ["{quests.high_voltage.subtitle}"] diff --git a/config/ftbquests/quests/chapters/lv__low_voltage.snbt b/config/ftbquests/quests/chapters/lv__low_voltage.snbt index 15cb9ec5a..84abcfab0 100644 --- a/config/ftbquests/quests/chapters/lv__low_voltage.snbt +++ b/config/ftbquests/quests/chapters/lv__low_voltage.snbt @@ -54,11 +54,31 @@ y: 2.0d } { + icon: { + Count: 1 + id: "gtceu:lv_blue_steel_wrench" + tag: { + Charge: 2147483647L + Damage: 0 + DisallowContainerItem: 0b + GT.Behaviours: { + Mode: 2b + } + GT.Tool: { + DefaultEnchantments: [ ] + HarvestLevel: 3 + MaxDamage: 803 + ToolSpeed: 18.0f + } + HideFlags: 2 + MaxCharge: 2147483647L + } + } id: "343F16805E04BFBE" linked_quest: "2D2CB8104E40E808" shape: "heart" x: 7.0d - y: 5.5d + y: 4.5d } ] quests: [ @@ -378,6 +398,7 @@ dependencies: [ "6E186F9C57155BFA" "46FA9DD4755A5548" + "3D8174C64DDC268B" ] dependency_requirement: "one_completed" description: [ @@ -1369,7 +1390,7 @@ type: "item" }] x: 7.0d - y: 4.5d + y: 5.5d } { dependencies: ["7FA1525D681C4B4A"] diff --git a/config/ftbquests/quests/chapters/mv__medium_voltage.snbt b/config/ftbquests/quests/chapters/mv__medium_voltage.snbt index e1a07236d..26c3b7476 100644 --- a/config/ftbquests/quests/chapters/mv__medium_voltage.snbt +++ b/config/ftbquests/quests/chapters/mv__medium_voltage.snbt @@ -287,7 +287,7 @@ type: "item" }] title: "{quests.medium_voltage.mv_stainless.title}" - x: 1.0d + x: 0.0d y: 7.5d } { @@ -425,7 +425,7 @@ type: "item" }] title: "{quests.medium_voltage.mv_steel_alloy.title}" - x: 8.0d + x: 10.0d y: 1.0d } { @@ -434,7 +434,7 @@ icon: "gtceu:mv_cutter" id: "5CBBBFD1FBBE95CE" shape: "octagon" - size: 2.0d + size: 1.5d subtitle: "{quests.medium_voltage.mv_cutter.subtitle}" tasks: [{ id: "01D8E995ED40F6CF" @@ -449,13 +449,14 @@ type: "item" }] title: "{quests.medium_voltage.mv_cutter.title}" - x: 8.0d - y: 4.0d + x: 10.0d + y: 3.75d } { dependencies: [ - "5CBBBFD1FBBE95CE" "71412502C81F21C1" + "738E8E10951E17C6" + "71F82DEEBDBBD4AC" ] description: ["{quests.medium_voltage.mv_laser_engraver.desc}"] icon: "gtceu:mv_laser_engraver" @@ -470,7 +471,7 @@ }] title: "{quests.medium_voltage.mv_laser_engraver.title}" x: 8.0d - y: 8.0d + y: 10.0d } { dependencies: [ @@ -490,7 +491,7 @@ }] title: "{quests.medium_voltage.mv_energy_hatch.title}" x: 3.0d - y: 9.0d + y: 7.5d } { dependencies: ["22E462070F8B027A"] @@ -514,13 +515,15 @@ "2AD44111B9B39C90" "4058958C4743E522" "1646BF9194100E57" + "02D2A2FFAB2AB0F1" + "3B34F995B31D4C5B" ] description: ["{quests.medium_voltage.mv_kanthal_coil.desc}"] hide_dependency_lines: false icon: "gtceu:kanthal_coil_block" id: "1C55AE6AD5BDE304" - shape: "square" - size: 1.0d + shape: "octagon" + size: 1.5d subtitle: "{quests.medium_voltage.mv_kanthal_coil.subtitle}" tasks: [{ count: 16L @@ -529,7 +532,7 @@ type: "item" }] title: "{quests.medium_voltage.mv_kanthal_coil.title}" - x: 1.0d + x: 3.0d y: 10.0d } { @@ -550,8 +553,8 @@ type: "item" }] title: "{quests.medium_voltage.mv_first_hv.title}" - x: 3.0d - y: 16.5d + x: 1.5d + y: 18.0d } { dependencies: ["315169840E06110F"] @@ -581,7 +584,7 @@ ] title: "{quests.medium_voltage.mv_ram.title}" x: 8.0d - y: 10.0d + y: 13.5d } { dependencies: ["6F6D2829FC42F21C"] @@ -602,7 +605,7 @@ }] title: "{quests.medium_voltage.mv_more_lv.title}" x: 3.0d - y: 12.0d + y: 13.5d } { dependencies: ["5C17BF90DA2AAEEE"] @@ -619,13 +622,10 @@ }] title: "{quests.medium_voltage.mv_more_mv.title}" x: 3.0d - y: 14.0d + y: 15.0d } { - dependencies: [ - "1E9BE8D3F8A602DC" - "3DB03EA806B2D8A1" - ] + dependencies: ["738E8E10951E17C6"] description: ["{quests.medium_voltage.mv_silicon_boule.desc}"] icon: "gtceu:silicon_boule" id: "71412502C81F21C1" @@ -647,7 +647,7 @@ ] title: "{quests.medium_voltage.mv_silicon_boule.title}" x: 10.0d - y: 8.0d + y: 10.0d } { dependencies: ["26394C1290D70AB6"] @@ -664,7 +664,7 @@ }] title: "{quests.medium_voltage.mv_circuit_assembler.title}" x: 0.0d - y: 14.0d + y: 15.0d } { dependencies: ["26394C1290D70AB6"] @@ -681,7 +681,7 @@ }] title: "{quests.medium_voltage.mv_multi_smelter.title}" x: 6.0d - y: 16.5d + y: 18.0d } { dependencies: [ @@ -691,8 +691,9 @@ description: ["{quests.medium_voltage.mv_best_lv.desc}"] icon: "gtceu:microchip_processor" id: "5E76D4C24026157D" - shape: "octagon" - size: 1.5d + optional: true + shape: "heart" + size: 1.0d subtitle: "{quests.medium_voltage.mv_best_lv.subtitle}" tasks: [{ id: "4E076080D7B23372" @@ -700,8 +701,8 @@ type: "item" }] title: "{quests.medium_voltage.mv_best_lv.title}" - x: -3.0d - y: 12.0d + x: 0.0d + y: 13.0d } { dependencies: [ @@ -721,10 +722,13 @@ }] title: "{quests.medium_voltage.mv_best_mv.title}" x: -3.0d - y: 14.0d + y: 15.0d } { - dependencies: ["38DE506FF5B32031"] + dependencies: [ + "38DE506FF5B32031" + "3DFFA8F91452C62A" + ] description: ["{quests.medium_voltage.mv_second_hv.desc}"] icon: "gtceu:micro_processor_assembly" id: "5063FDFFBE3E4855" @@ -738,7 +742,7 @@ }] title: "{quests.medium_voltage.mv_second_hv.title}" x: -3.0d - y: 16.5d + y: 18.0d } { dependencies: ["10FB27DD3C7BEC2F"] @@ -754,8 +758,8 @@ type: "item" }] title: "{quests.medium_voltage.mv_inductor.title}" - x: -10.5d - y: 12.0d + x: -5.5d + y: 15.0d } { dependencies: ["6BB98D128822730E"] @@ -765,18 +769,26 @@ shape: "gear" size: 3.0d subtitle: "{quests.medium_voltage.mv_polyethylene.subtitle}" - tasks: [{ - id: "1605293EDC9EAFCB" - item: { - Count: 1 - id: "ftbfiltersystem:smart_filter" - tag: { - "ftbfiltersystem:filter": "or(nbt(fuzzy:{fluid:{FluidName:\"gtceu:polyethylene\"}})nbt(fuzzy:{Fluid:{FluidName:\"gtceu:polyethylene\"}})item(gtceu:polyethylene_bucket))" + tasks: [ + { + id: "1605293EDC9EAFCB" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(nbt(fuzzy:{fluid:{FluidName:\"gtceu:polyethylene\"}})nbt(fuzzy:{Fluid:{FluidName:\"gtceu:polyethylene\"}})item(gtceu:polyethylene_bucket))" + } } + optional_task: true + title: "{material.gtceu.polyethylene}" + type: "item" } - title: "{material.gtceu.polyethylene}" - type: "item" - }] + { + id: "0BED85C5B7E4B5AF" + title: "{quests.tasktype.checkmark}" + type: "checkmark" + } + ] title: "{quests.medium_voltage.mv_polyethylene.title}" x: -10.0d y: 10.0d @@ -802,13 +814,14 @@ type: "item" }] title: "{quests.medium_voltage.mv_pvc.title}" - x: -9.5d - y: 12.0d + x: -10.0d + y: 13.0d } { dependencies: [ "4353AB0E20601AEC" "10FB27DD3C7BEC2F" + "3B34F995B31D4C5B" ] description: ["{quests.medium_voltage.mv_boards.desc}"] icon: "gtceu:plastic_printed_circuit_board" @@ -817,9 +830,16 @@ size: 1.0d subtitle: "{quests.medium_voltage.mv_boards.subtitle}" tasks: [ + { + id: "076F358571035951" + item: "tfg:mo_activated_sic_substrate" + optional_task: true + type: "item" + } { id: "68B5E2667EDAE895" item: "gtceu:plastic_circuit_board" + optional_task: true type: "item" } { @@ -829,8 +849,8 @@ } ] title: "{quests.medium_voltage.mv_boards.title}" - x: -7.0d - y: 12.0d + x: -3.0d + y: 13.0d } { dependencies: [ @@ -854,7 +874,7 @@ tasks: [ { id: "118468CD578081CF" - item: "gtceu:sodium_persulfate_bucket" + item: "tfg:redstone_tri_p_toluenesulfonate_bucket" optional_task: true type: "item" } @@ -871,8 +891,8 @@ } ] title: "{quests.medium_voltage.mv_sodium_iron.title}" - x: -7.0d - y: 14.0d + x: -3.0d + y: 11.0d } { dependencies: [ @@ -1249,8 +1269,8 @@ } ] title: "{quests.medium_voltage.mv_ic.title}" - x: 6.0d - y: 10.0d + x: 6.5d + y: 13.5d } { dependencies: ["315169840E06110F"] @@ -1281,7 +1301,7 @@ ] title: "{quests.medium_voltage.mv_ulpic.title}" x: 6.0d - y: 8.0d + y: 7.5d } { dependencies: ["75F38905DEA60F15"] @@ -1309,6 +1329,7 @@ dependencies: [ "10FB27DD3C7BEC2F" "1C55AE6AD5BDE304" + "561385A0B977CFAD" ] description: ["{quests.medium_voltage.mv_electronic_components.desc}"] id: "5DD01CBADFFF3571" @@ -1332,7 +1353,7 @@ } ] title: "{quests.medium_voltage.mv_electronic_components.title}" - x: -0.5d + x: 1.5d y: 10.0d } { @@ -1466,7 +1487,10 @@ y: 1.0d } { - dependencies: ["1E9BE8D3F8A602DC"] + dependencies: [ + "1E9BE8D3F8A602DC" + "28111275F2315FF7" + ] description: [ "{quests.medium_voltage.mv_kanthal_ingot.desc.1}" "{@pagebreak}" @@ -1487,15 +1511,10 @@ optional_task: true type: "item" } - { - id: "1C6FECE08B6DC1B8" - item: "gtceu:mv_chemical_bath" - type: "item" - } ] title: "{quests.medium_voltage.mv_kanthal_ingot.title}" - x: 1.0d - y: 11.0d + x: 4.5d + y: 10.0d } { dependencies: ["22E462070F8B027A"] @@ -1525,8 +1544,8 @@ type: "item" }] title: "{quests.medium_voltage.mv_silicon.title}" - x: 10.0d - y: 6.0d + x: 12.0d + y: 7.5d } { dependencies: [ @@ -1548,7 +1567,7 @@ }] title: "{quests.medium_voltage.lsb.title}" x: 0.0d - y: 16.5d + y: 18.0d } { dependencies: ["315169840E06110F"] @@ -1574,8 +1593,8 @@ } ] title: "{quests.medium_voltage.mv_cpu.title}" - x: 10.0d - y: 10.0d + x: 9.5d + y: 13.5d } { dependencies: ["5D9D01EF219A31C5"] @@ -1620,7 +1639,7 @@ ] title: "{quests.medium_voltage.stainless_greate.title}" x: 0.0d - y: 6.5d + y: 5.5d } { dependencies: ["54A255C1C6E33165"] @@ -1693,6 +1712,264 @@ x: 1.5d y: 5.5d } + { + dependencies: ["28111275F2315FF7"] + description: ["{quests.medium_voltage.rene_41.desc}"] + id: "02D2A2FFAB2AB0F1" + subtitle: "{quests.medium_voltage.rene_41.subtitle}" + tasks: [{ + id: "4DDAAC598858DDAE" + item: "tfg:rene_41_ingot" + type: "item" + }] + x: 4.5d + y: 9.0d + } + { + dependencies: ["28111275F2315FF7"] + description: [ + "{quests.medium_voltage.silicon_carbide.desc.1}" + "{@pagebreak}" + "{quests.medium_voltage.silicon_carbide.desc.2}" + ] + id: "3B34F995B31D4C5B" + subtitle: "{quests.medium_voltage.silicon_carbide.subtitle}" + tasks: [{ + id: "30ED727F2636666F" + item: "tfg:silicon_carbide_ingot" + type: "item" + }] + x: 4.5d + y: 11.0d + } + { + dependencies: ["79E8DC4D9B5F6B97"] + description: ["{quests.medium_voltage.silicon_rubber.desc}"] + hide_dependency_lines: true + icon: "gtceu:silicone_rubber_plate" + id: "561385A0B977CFAD" + subtitle: "{quests.medium_voltage.silicon_rubber.subtitle}" + tasks: [ + { + id: "47BDB7C5480316A3" + title: "{quests.tasktype.checkmark}" + type: "checkmark" + } + { + id: "48DB830F406C4AB0" + item: "gtceu:silicone_rubber_bucket" + optional_task: true + type: "item" + } + ] + title: "{quests.medium_voltage.silicon_rubber.title}" + x: 0.0d + y: 11.0d + } + { + dependencies: ["22E462070F8B027A"] + description: ["{quests.medium_voltage.chemical_bath.desc}"] + hide_dependency_lines: true + id: "28111275F2315FF7" + shape: "octagon" + size: 1.25d + subtitle: "{quests.medium_voltage.chemical_bath.subtitle}" + tasks: [{ + id: "088325FB8E770571" + item: "gtceu:mv_chemical_bath" + type: "item" + }] + x: 6.0d + y: 10.0d + } + { + dependencies: [ + "3DB03EA806B2D8A1" + "5CBBBFD1FBBE95CE" + ] + description: [ + "{quests.medium_voltage.htpf.desc.1}" + "{@pagebreak}" + "{quests.medium_voltage.htpf.desc.2}" + ] + id: "738E8E10951E17C6" + shape: "octagon" + size: 2.0d + subtitle: "{quests.medium_voltage.htpf.subtitle}" + tasks: [{ + id: "15531745870DB404" + item: "tfg:high_temp_precision_fabricator" + type: "item" + }] + x: 10.0d + y: 7.5d + } + { + dependencies: ["738E8E10951E17C6"] + description: [ + "{quests.medium_voltage.gem_lens.desc.1}" + "{@pagebreak}" + "{quests.medium_voltage.gem_lens.desc.2}" + ] + id: "71F82DEEBDBBD4AC" + subtitle: "{quests.medium_voltage.gem_lens.subtitle}" + tasks: [ + { + id: "76613B2F87AA3C63" + item: "gtceu:ruby_lens" + type: "item" + } + { + id: "7B8AB218BFF3D3BC" + item: "gtceu:sapphire_lens" + type: "item" + } + { + id: "23A321B34394DBB3" + item: "gtceu:emerald_lens" + type: "item" + } + { + id: "60020347A3A4132B" + item: "gtceu:diamond_lens" + type: "item" + } + { + id: "64A48763F18FD4EE" + item: "tfg:worked_optical_borosilicate_blank" + optional_task: true + type: "item" + } + ] + title: "{quests.medium_voltage.gem_lens.title}" + x: 8.0d + y: 7.5d + } + { + dependencies: ["682C26579EDDCA76"] + description: ["{quests.medium_voltage.vanadium_tools.desc}"] + icon: { + Count: 1 + id: "gtceu:mv_vanadium_steel_wrench" + tag: { + Charge: 2147483647L + Damage: 0 + DisallowContainerItem: 0b + GT.Behaviours: { + Mode: 2b + } + GT.Tool: { + DefaultEnchantments: [ ] + HarvestLevel: 3 + MaxDamage: 2047 + ToolSpeed: 19.0f + } + HideFlags: 2 + MaxCharge: 2147483647L + } + } + id: "4F639F0169C56641" + optional: true + shape: "heart" + subtitle: "{quests.medium_voltage.vanadium_tools.subtitle}" + tasks: [{ + id: "2089A49DEBDB9A7C" + item: { + Count: 1 + id: "ftbfiltersystem:smart_filter" + tag: { + "ftbfiltersystem:filter": "or(item(gtceu:mv_vanadium_steel_drill)item(gtceu:mv_vanadium_steel_wrench)item(gtceu:mv_vanadium_steel_screwdriver)item(gtceu:mv_vanadium_steel_buzzsaw)item(gtceu:mv_vanadium_steel_wire_cutter)item(gtceu:mv_vanadium_steel_chainsaw)item(gtceu:vanadium_steel_knife)item(gtceu:vanadium_steel_hoe)item(gtceu:vanadium_steel_scythe)item(gtceu:vanadium_steel_hammer)item(gtceu:vanadium_steel_file)item(gtceu:vanadium_steel_sword)item(gtceu:vanadium_steel_butchery_knife)item(gtceu:vanadium_steel_crowbar))" + } + } + title: "{quests.medium_voltage.vanadium_tools.task}" + type: "item" + }] + title: "{quests.medium_voltage.vanadium_tools.title}" + x: 10.0d + y: -0.5d + } + { + dependencies: ["3B34F995B31D4C5B"] + description: ["{quests.medium_voltage.sic_sic_rotor.desc}"] + id: "044089A612080F9B" + optional: true + shape: "heart" + subtitle: "{quests.medium_voltage.sic_sic_rotor.subtitle}" + tasks: [{ + id: "07B75D91B06F1941" + item: { + Count: 1 + id: "gtceu:turbine_rotor" + tag: { + GT.PartStats: { + Material: "tfg:silicon_carbide_silicon_carbide" + } + } + } + type: "item" + }] + x: 4.5d + y: 12.0d + } + { + dependencies: ["71F82DEEBDBBD4AC"] + description: ["{quests.medium_voltage.gem_slurry.desc}"] + icon: "gtceu:exquisite_ruby_gem" + id: "7343272F65129211" + shape: "heart" + subtitle: "{quests.medium_voltage.gem_slurry.subtitle}" + tasks: [ + { + id: "0FA476E1DEC280C5" + title: "{quests.tasktype.checkmark}" + type: "checkmark" + } + { + id: "118FA3A7CBE11B2B" + item: "tfg:dirty_ruby_slurry_bucket" + optional_task: true + type: "item" + } + { + id: "377A9A3E156D5421" + item: "tfg:dirty_diamond_slurry_bucket" + optional_task: true + type: "item" + } + { + id: "2C05EBE2496806AF" + item: "tfg:dirty_sapphire_slurry_bucket" + optional_task: true + type: "item" + } + { + id: "0CADBE570823AC5F" + item: "tfg:dirty_emerald_slurry_bucket" + optional_task: true + type: "item" + } + ] + title: "{quests.medium_voltage.gem_slurry.title}" + x: 8.0d + y: 6.0d + } + { + dependencies: ["28111275F2315FF7"] + description: ["{quests.high_voltage.mv_superconductors.desc}"] + icon: "gtceu:magnesium_diboride_double_wire" + id: "7A184101B8426F52" + optional: true + shape: "heart" + size: 1.0d + tasks: [{ + id: "37A969C42A1B74FD" + item: "gtceu:magnesium_diboride_single_wire" + type: "item" + }] + title: "{quests.high_voltage.mv_superconductors.title}" + x: 6.0d + y: 11.5d + } ] subtitle: ["{quests.medium_voltage.subtitle}"] title: "{quests.medium_voltage}" diff --git a/config/ftbquests/quests/chapters/tips__tools.snbt b/config/ftbquests/quests/chapters/tips__tools.snbt index 6aed25787..0ecd6667f 100644 --- a/config/ftbquests/quests/chapters/tips__tools.snbt +++ b/config/ftbquests/quests/chapters/tips__tools.snbt @@ -598,13 +598,19 @@ { id: "34DEDF3B7F0DB3BC" item: "gtceu:item_tag_filter" + optional_task: true type: "item" } { id: "35CAF01644B8D9A2" item: "gtceu:fluid_tag_filter" + optional_task: true type: "item" } + { + id: "45C7E66106E323A2" + type: "checkmark" + } ] title: "{quests.high_voltage.250_iq.title}" x: 10.0d @@ -806,25 +812,25 @@ ] icon: { Count: 1 - id: "gtceu:iv_copper_drill" + id: "gtceu:lv_blue_steel_drill" tag: { Charge: 2147483647L Damage: 0 DisallowContainerItem: 0b GT.Behaviours: { - AoEColumn: 4 - AoELayer: 8 - AoERow: 4 - MaxAoEColumn: 4 - MaxAoELayer: 8 - MaxAoERow: 4 + AoEColumn: 1 + AoELayer: 0 + AoERow: 1 + MaxAoEColumn: 1 + MaxAoELayer: 0 + MaxAoERow: 1 TorchPlacing: 1b } GT.Tool: { DefaultEnchantments: [ ] - HarvestLevel: 2 - MaxDamage: 5543 - ToolSpeed: 6.0f + HarvestLevel: 3 + MaxDamage: 2411 + ToolSpeed: 11.0f } HideFlags: 2 MaxCharge: 2147483647L diff --git a/config/gtmutils.yaml b/config/gtmutils.yaml new file mode 100644 index 000000000..d66366c5a --- /dev/null +++ b/config/gtmutils.yaml @@ -0,0 +1,64 @@ +features: + # Whether the Sterile Cleaning Maintenance Hatch is enabled. + sterileHatchEnabled: true + + # Whether the 64A energy converters are enabled. + converters64aEnabled: false + + # Whether the Omni-breaker is enabled. + omnibreakerEnabled: true + + # What tier the Omni-breaker is, if enabled. (ULV = 0, LV = 1, MV = 2, ...) + # (Unless the default recipe is overridden, can only support LV to IV!) + omnibreakerTier: 6 + + # The energy capacity of the Omni-breaker. + omnibreakerEnergyCapacity: 40960000 + + # Whether the Wireless Active Transformer is enabled. + pterbEnabled: true + + # Base amount of WAT coolant to drain every second. + # (Setting both this amount and the IO multiplier to 0 disables the coolant mechanic.) + pterbCoolantBaseDrain: 10 + + # Multiplier over IO amount for additional coolant drain. + # (Setting both this and the base drain amount to 0 disables the coolant mechanic.) + pterbCoolantIOMultiplier: 0.0 + + # Whether the coins/credits are enabled. + coinsEnabled: false + + # Whether the custom MV tools are enabled. + customMVToolsEnabled: true + + # Whether the custom HV tools are enabled. + customHVToolsEnabled: true + + # Whether the custom EV tools are enabled. + customEVToolsEnabled: true + + # Whether the custom IV tools are enabled. + customIVToolsEnabled: true + + # Whether the custom LuV tools are enabled. + customLuVToolsEnabled: true + + # Whether the custom ZPM tools are enabled. + customZPMToolsEnabled: true + + # Whether the Auto Turbo Chargers are enabled. + autoChargersEnabled: true + + # Whether the Expanded Pattern Buffer and Expanded Pattern Buffer Proxy are enabled. If AE2 is not loaded, this config will not load the machines regardless. + expandedBuffersEnabled: true + + # Whether the Enlarged Stocking Bus/Hatch are enabled. If AE2 is not loaded, this config will not load the machines regardless. + enlargedStockingEnabled: true + + # How many rows the Enlarged Stocking Input Bus/Hatch should have, max is 64 rows for 512 slots. (each row is 8 slots in size) + enlargedStockingSizeRows: 8 + + # Whether the Tag Stocking Input Bus/Hatch are enabled. If AE2 is not loaded, this config will not load the machines regardless. + tagStockingEnabled: true + diff --git a/kubejs/assets/forge/models/tag/item/tools/files.json b/kubejs/assets/forge/models/tag/item/tools/files.json new file mode 100644 index 000000000..c3dd1ff90 --- /dev/null +++ b/kubejs/assets/forge/models/tag/item/tools/files.json @@ -0,0 +1,3 @@ +{ + "parent": "gtceu:item/tools/file" +} \ No newline at end of file diff --git a/kubejs/assets/forge/models/tag/item/tools/hammers.json b/kubejs/assets/forge/models/tag/item/tools/hammers.json new file mode 100644 index 000000000..f10ef508f --- /dev/null +++ b/kubejs/assets/forge/models/tag/item/tools/hammers.json @@ -0,0 +1,3 @@ +{ + "parent": "gtceu:item/tools/hammer" +} \ No newline at end of file diff --git a/kubejs/assets/forge/models/tag/item/tools/knives.json b/kubejs/assets/forge/models/tag/item/tools/knives.json new file mode 100644 index 000000000..d4a831dbd --- /dev/null +++ b/kubejs/assets/forge/models/tag/item/tools/knives.json @@ -0,0 +1,3 @@ +{ + "parent": "gtceu:item/tools/knife" +} \ No newline at end of file diff --git a/kubejs/assets/forge/models/tag/item/tools/screwdrivers.json b/kubejs/assets/forge/models/tag/item/tools/screwdrivers.json new file mode 100644 index 000000000..c81fa4d17 --- /dev/null +++ b/kubejs/assets/forge/models/tag/item/tools/screwdrivers.json @@ -0,0 +1,3 @@ +{ + "parent": "gtceu:item/tools/screwdriver" +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/models/item/plastic_circuit_board.json b/kubejs/assets/gtceu/models/item/plastic_circuit_board.json new file mode 100644 index 000000000..8b8b4b231 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/plastic_circuit_board.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfg:item/ceramic_circuit_board" + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/models/item/plastic_printed_circuit_board.json b/kubejs/assets/gtceu/models/item/plastic_printed_circuit_board.json new file mode 100644 index 000000000..83ff8de4a --- /dev/null +++ b/kubejs/assets/gtceu/models/item/plastic_printed_circuit_board.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfg:item/ceramic_printed_circuit_board" + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.iron_iii_chloride.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.iron_iii_chloride.png new file mode 100644 index 0000000000000000000000000000000000000000..cdc9a00fc0c2589e6cc22eecfa86245aa884733a GIT binary patch literal 7943 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 Z{{>QYR+svtZF~R#002ovPDHLkV1hG5QyKsO literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.soldering_alloy.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.soldering_alloy.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.soldering_alloy.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.tin.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.tin.png new file mode 100644 index 0000000000000000000000000000000000000000..d0bb6b3d7a79a7408458417fdd4a2268e7ac1e78 GIT binary patch literal 10852 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 delta 517 zcmV+g0{Z>s0-gkrBYy$qNklwq)iya^>1GJ0D2cJCherpZrrhI&6s!FnOm(J+dC zAg1j`L{-z)cXmlz!7$KtJ!`gQa%+2=La~@N9pK_JqSOACL!3+}bWeYvDA#Q|oigZk zb4>?$_u)+r(JK_Vvw>K-UBz>4eAfoJ88L}t7IDm%&wigWu(WmBUwL%!IM+^I9iw|= zKSNwDmyF#JDQt?k*;2$X@bSie9#KTFogt=W;#fn9rP2y?WMNt+wq;V@*+J8FoRM{X zg%t5;uZxJ#?f03_XPmabbN*|PwMCN9JL}+BW`?Nz?|1$U-;IsIH0E~`00000NkvXX Hu0mjfE@Asn diff --git a/kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2.png b/kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2.png new file mode 100644 index 0000000000000000000000000000000000000000..0d13e27d7dc6fdf63203c1bf78d436073f10ac1a GIT binary patch literal 542 zcmV+(0^$9MP)wq)iya^>1GJ0D2c zJCherpZrrhI&6s!Fb{lURRzGcE%uvD=7G;l1QEga+^k(L7KjK@7yzIGIMxsa&@_!O z3TW&#aI7Jkrcp4AT-!1XO64+96at{vsuiLr;Bs<-f`Z73B#Hv&@f<}_V67BJ0n6nT ztl!nD6?B02AK$XyY|_|ktRU;V)atuAD@|4KT$_u)!?aAg{r+kLfM>_A*+N*vF-ejT z`9Af#_i_#3{)30PcJlH$8DgTU$Qscwihm%c?M6gZ)7E!(Nn61%&~!a(wq{M zW#U*vilx#DbYx*#Cbnf#-q}IZb)1oPeT5Y9XRnKh(Czn`&u5&rzjOX;khMjU&^znk gSZ0Q({O@=E4d0E8!8GP~6951J07*qoM6N<$f(!cmmH+?% literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2.png.mcmeta b/kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2.png.mcmeta new file mode 100644 index 000000000..d53b006e8 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2.png.mcmeta @@ -0,0 +1,5 @@ +{ + "ldlib": { + "connection": "tfg:block/casings/sterling_silver_casing_ctm" + } +} diff --git a/kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2_ctm.png b/kubejs/assets/tfg/textures/block/casings/sterling_silver_casing2_ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..c08a0888250ab67d7990e34ffd39895d4e48c1e5 GIT binary patch literal 1102 zcmV-U1hM;xP)=_PXWC5(WmF6 zQ9lf$DDv9v(%QO+7vH?fFp4TGtAG6d2>w^M@8FXt4EusVfu&02+B+ZI`ua-+|ND{C z4l@~C*)()j%>jEOcC_s#VbJdbeb1#EP3e2C1BZF0-jF3Jo6WkOLx}SkRpoe2RSTNt z#uudbJ3$+wkqDZLL_L8=qME-kHyxO{@M zvvYLPwCa~GU(M%>Q~X}9V;Tp^9ZaNpIs(EF2>;_7H(weuF0Z_{`s>4oY=F>pB3Z`$ z*`_fwqXK)wA#TuV*@Qt9QOH0FIm%>4X9_u!&9Zy9EkY!gRTPf-VsR#yBNTnR)nx0# z(8=dWK4BcP@A^9)4=v~fd)0ps8pqoH9!DI0;62{?Go`P@6JuFSX|YtMlMC|;B5GO^ zvSl2KA)o3ads$0r7%3&-+fF-g*q`Qrua$7VXs3irWG~3 zFD#VA(A0SDOKj~A>E!2MeiZ9^!k>@dQP*4Bn`{8|JD)$O4(YT5kMh*d(;NzRk6X9z zWJg1q2HOvQ`sBtw0=x8L8`_*TY_cIDc; zv@$KdF&Yg^$>&IZ;QNqS$iDA(ssW!Bz;Hk0{f=RV2Lrwz;0OY5 zx4JW~3g7!T?gsKP%;?|=_vM4%9=&pasY1pdiv=;pW#Bu`e^H?(z<%I3V?U04?7sln z0Nr*A4{;QSoXh2bJY+&1GVrW^Top#r@2$2?Nd3-{`khb`_Jc&wr};`8nlJWyx7!u_ z9XPQcV8?&X?@janmypMW9>+NSH-I=PM1SIPj%)zh#L@3aY5FD(*zcK>e& zZi?F~iv=6D{y@t4sxH!*>$Aagzz>cCwaG(cdJj?O1?6=#d$|ac&VH8C;S^oI? z&{`&*&hwLL(D_@ZAIS2od51llFOcOK&dx9JZ*|uVOLv%j?~_#{dXSe6EawO52TXY5 ze!!F;ta~5m%Ma2InDEB^fGICz!an_gDL+_0(3c;iA28vK`vFtFm5Sw5E6>R(x+@hQ z`|N-J+&!k^&){oj2vqo`x%|gyyv{f^41UcB}rObTz{70BVQ;=&mX;RhfXZ3 zf%ot3eShWkOV>ZVzP5f@dht`;pTQGZ|djG;~$X0ed5MwCyHg z(C-6%&!rnp>3@5!1BZF0-jF3Jo6WkOLx}SkRpoe2RSTNt#uudbJ3$+wkqDZLL_L8=qME-kHyxO{@MvvYLPwCa~GU(M%>Q~X}9 zV;Tp^9ZaNpIs(EF2>;_7H(weuF0Z_{`s>4oY=F>pB7a%N{n@55Gou1~!y#_aY1xE9 z6j8`P3OUMTMrR5+lg+Yww=F^>mQ@sv`C@Se3IUp%ESJlfxVOh|<~F)60_NyuTZLoKEiHM}n@l*G`~cw3bUkKa+(Tics#0Q5VbKd27rv;&Xw)PK*@913=iTet6IM?;zh+Yf&FqEY<=VTnGA+F^8VyV3C7k04 zwwe~<;P@EmI&ITnIdk9C>-k)vI6F(e-82cwcbt}G)H8ULyx)-?mJjcDj@0j%rjYS6 z8h>^2lZmU>$>&IZ;QNqS$iDA(ssW!Bz;Hk0{f=RV2Lrwz;0OY5x4JW~3g7!T?gsKP z%;?|=_vM4%9=&pasY1pdiv=;pW#Bu`e^H?(z<%I3V?U04?7sln0Nr*A4{;QSoXh2b zJY+&1GVrW^Top#r@2$2?Nd3-{`khb`_J4y!(5LxI9GWlod$-#a`yDv3A7ICS&hJh0 z|Cf-*g&xN^{WpL(DMWwba*k{O+QiZCNNM^e4&))jw=EMfa-TxxeiAZjkN3M_HrVf( zlYZw&{SJi8d?WEqi*1Tny5w^t9|$@7#`@CA%Egv#VZeSr(i^pWL2KDfEJ!pvusx{F z;j3;ZK$u(G4{C?CRl%P>e*r6*`#_kYFMsj*XFQOUb$zCv@6P~B_DJ%4K?l?T0000< KMNUMnLSTa2QYIq+ diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.bi_pb_sn_cd_in_tl.png b/kubejs/assets/tfg/textures/block/fluids/fluid.bi_pb_sn_cd_in_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..467ba39ce540261aa7fd4cc8fe8ff3341b26988c GIT binary patch literal 11892 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 Hu0mjfQVBP# literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/fluids/fluid.woods_metal.png.mcmeta b/kubejs/assets/tfg/textures/block/fluids/fluid.woods_metal.png.mcmeta new file mode 100644 index 000000000..c5d457f93 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/fluids/fluid.woods_metal.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/gui/artisan_table/glass_border.png b/kubejs/assets/tfg/textures/gui/artisan_table/glass_border.png new file mode 100644 index 0000000000000000000000000000000000000000..b2f68933b81342da2dfe1d3599b8447528abbe01 GIT binary patch literal 5008 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 X##wxAo|N4I00000NkvXXu0mjfm>+u5 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/gui/progress_bar/progress_bar_boule.png b/kubejs/assets/tfg/textures/gui/progress_bar/progress_bar_boule.png new file mode 100644 index 0000000000000000000000000000000000000000..921d3c1cd8f5e27f1efdc1f16703b03ab530b7d3 GIT binary patch literal 409 zcmV;K0cQS*P)KmcMO=Fc8IGqLeTIZjo5PH4-fnw5-4e>;M~F&j8HB z0OtYh-l;%*5dR@UN|EnLG&cVEoqe_sh!7E3BC;|6M#1X3wq;pHK|f=l#uzYjlz}MV z9Yq0?BzXo%M0QygR8<8jC8lXYXdQzNjWJM4L2DiD(kmjed7j%m&!0`5$6#;0_12&1 zAHFGfo&c|i$d+Yk$8oe>*F{~jPKQKf=Xr*d5<&<7Kv5LIcjY4l%d!kgDF6U7Lu-w7 zT`>#;`o6!6zc}1rP169t?(Qg`Q)kFZDM%^7%*e8AZ%@c-cAv9vm)+c-PD#2G00000NkvXXu0mjf Dmq@O_ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/blue_alloy_desh_foil.png b/kubejs/assets/tfg/textures/item/blue_alloy_desh_foil.png new file mode 100644 index 0000000000000000000000000000000000000000..cdda491957f05207c1689ad0ad0c0aa892a68485 GIT binary patch literal 546 zcmV+-0^R+IP)5lR;|}K^TUg?QEc-8XGkUF)C>(7-_P4Q3FO%JT%~? z1us3=KVbX`Vm$TO9wM|iDV{ZuO9f9==?aRGqEtMzSfgxqZD?ZGjV!w!O4iV>Y5h(E z-}}7t&Nnk~fGVUFw~$s`zn;7w2rxM@NOU-ZTyovnw<}V&M(PE|V*w&zndotuNJJ1F z&hW6bM7N3T2P&x`0D8klZ`fUm748(SLJ2R4=!PdJ2Dx$b0%oJmw&^es?8CGiOv?cm zBqaE)bA9Y0;;U6uzteto?s|*?m#A=-{?hANGonU7GNOQ$F}MGm&ww*t-mwS z8#a-!Ox>`(^NwCR53j4#jh$X+CQp_%08}}I&_=EmPi$%&J|r+Lr)QF9Rh=)!FSOhg z8&W^*ma&uI)#x~vKa`2b0=`M+Dm4JK+!UJ|pV(5%0A%eZ;`R|yeBYKZMskGLKJG~} zU-?G=-35N0R#<)hh<3{$Yd1ORv{|gJOH$_+DxtF+J#~iI%LT5ajsfsu^#}3kWuD#} z^L7MStgU+w$y@9;0kCe}r&^xz1@{8f(bi`)zT kXXO(~H=juQe&5~o2d+>0B$FtK7ytkO07*qoM6N<$g3=V}kN^Mx literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/ceramic_circuit_board.png b/kubejs/assets/tfg/textures/item/ceramic_circuit_board.png new file mode 100644 index 0000000000000000000000000000000000000000..4d93ddda9d2c290e2d4c051ed32b4b8444258c63 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3hN8aSXBOO*YZhO<%xb5V&M^ zV`C%h?1Uvt|J6%W|NPk9qaqpb=<%ofk@qJ6Wf~v;J}=J$1Qoo_h6fxR8xJ}KPj{RV zKLadxeSSPo=el`3`~UxG(>!RvbCf|`cIyA4MUM*Xq`9RJ=TEy|z+B^dMgj!x)mNV1 z@b%Ey|MU0#PdFmQ_Ts_g=l&K?A8ZuJT>1b0*%K`ffu7Qn z-2Cu%`TG)f|NrtBK6uXGCO@H}rTKgOJ>!sdHx7Mx`J3NG!X@g}|Ng>~gReuH;uPGB zcfHk!3z#saU0dm>stym&1dF|YAL-iksV_}SkZ3zwCL%s(=YJNxiRRU8%M!QWe_Y0B kbs$w@*INr-AZ5nD(81c{Iw`2Y5Ex(#p00i_>zopr0HM#AR{#J2 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/ceramic_printed_circuit_board.png b/kubejs/assets/tfg/textures/item/ceramic_printed_circuit_board.png new file mode 100644 index 0000000000000000000000000000000000000000..d88dfbd56619ea6cf152ecdc17dc987def91617b GIT binary patch literal 453 zcmV;$0XqJPP)5k90tkddver>$E*fgcx91~w z#wonM1)zU^7XXnEIG0`0SaI9(RK8MYt58-#>Szvt_F`_@Eo@z=gvYvEZ6Vhe!;ueVFUn8}!TQ&6SMaT*;T|E^~}_ zSnF);{PIFNmtFF6uGNG3>N>N;wE&OLPpaN3We4+3qrQ8KyrEB6eu>1C-g7G0nwt3> v_<$KP>H!fIsPyAM2blD2TCi`I{EglK4F0WZvm$E900000NkvXXu0mjf!;IQc literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/chorus_ceramic_insulation.png b/kubejs/assets/tfg/textures/item/chorus_ceramic_insulation.png new file mode 100644 index 0000000000000000000000000000000000000000..5b30dac0b61261fcd8717a4393ffde19c71fecdc GIT binary patch literal 398 zcmV;90df9`P)TlQC|CFcgMAsvdw86t5kk44@n#93kNby#!n4Y+Rx@ zfb<4LELp3d3Nd7*a!hWJPPXhq)uHudq5u2dd)5Q~c)Z^N`OOQGQZjL+K_( z4GP&ynzk89yeTkQCp^ub08oQ+?Hs*e@3>=?v4N;T1HgI%2ZW@GF9~(RL6?I4-Df7LJ^Xz6N*D& zAU$`}HUxe^w2X*Xv0)x@IBX=8)mNmk<4ay zpO4@3JiqsOpUGRCx+Za^PoNJ3K{K^U>NIelEneQ9;CIo#1}SiBDbQyKX_OPT+AJJz zWMLuS%EGLR=OD<{WlH_)%xNLs16ezEzxm~|T{j=pX%)SXG$(HxpZNE9+@8_$xL{>Z zXGy>`%d0#7xXp82=ha=_WY@hJ`HzyUrB#0At3LP73{9zOeUh1Sd}$SDZ1nzG75Jnp z)o<%#|1-fgDVHA4i4Tn5+f))?@pwaq{*I$)pmpANp565y(}UlCTjw-BoOSE9GzpOs zx)O4P$C}>exP%wi-z>gU)A8y*;K93uhvo7|nRCKwWk(>$<1IcRAyu1@Fj5PsploYN z^Xji+gW5KwYf5Shr)z?6eb`SGlHH&AXliC}DO$HMSvoLX7g#!Xe&Wf`dV2P>)fVnN zR_9l@4SqDOH72%f?r#pa_Ptc}JQf_(f1|tURQHP5ns*Oyj#fzb#W}r1${qd4a5?;0 z-^y7b$*0@#+o8*5T)*$w18wT7j6OSfwfuwi=Q4f0|ImtY`y=mr-fyoqS+9lp9jpA< zzdT^iAtCO&#Jcd{=3MFV<@ehEd|=JFfbGR?@e9ID?K`ShMeBmr%HR8E(XLZ3|A3s| z&~WBp|MxQATmRn2)?EyWduC_GwrA(~)Gqy#?}D`(9BIoBXUE*VxhQYIzhSOzU(4zG zH+_iHb&GzU^|~|X)`v@)4yOk7zLs0IXKh8!{On6XKRo$cZeUpKy%&#P*!c97h5H9W zn>sH@5@QD=t-0M7_NsbpUN02jOnP1wtP3gky4KNq=x9p|^3Ac^4?3@&`f=LZ)pezc zmXjgqx{AL$%AL+H`XBZk;NFPY2iZOi--jLqJy*bk-pbG=leEPor5KBWmAXt;&~y+K z9pkc6bPg-P1~!W~t0aAm%@UYrRFd^_9jdb?u-SZ4fsIWsSfi&4a_A^V60_1L+C>5Y z6Dv@#%Vad$Nta6E#wEeCD3(cJw~3IWl4R&o;RK6~g$XGkMG=jQ&%-4vec)&t!;xv~ zRl^YAO(n?|1S=_%Ih{_aGeT;yWy!Fps3;kV%Wxb47KlCHEKn}QY+o!w3}L8QJ8k2w z0&g+HA|_?9I0ThM0`%}mekQ9OHkhv(U43nZVlSww-!!Bs@0LXAczvyAt zgDomcW9=4)jb=4@tXWt*9)h7q{jCn0(OnKh%UC080;YBl6`K$;QL9TG^$;n@;!Re! z7a)6rrNDDzWKGCT)VRwTp9pXt#hqY1QoGw2Sm|`6+Cn?T^t5V~M2t@|7Mf>B_alp8 z5lj??BQ%RC5CUfygfh?=qEvFU!N4gnxj``wN^7|v7NQ8k>5-evR2$UWNkz(UPS5n6DS&2{#fKqS~oSYyc5rv$k5duR&HdG{q zFment;Bt8+F6Z1(3{9@G*h~~yPToXiu`;VU%dHRzC*xAJDhVz{$0VsnO5lKlN}{7^ zI3;~dqvuU*x1^)M+t90#ckd+_cJB(3qK8VbQ+X`o&J$n_ zspxFVoW+9iG2E{sa{d>3A%Y{6pbIEOLEr>J5K0a)P#9#}*@@_O3nw@! z8ylAecm!O5{&aH%FCAK`WfRSv*{rw>fH4Hckuk;;!;Hy>E0&25ULh1y^jiUj2E4M~iaN+7n%xj)h+pYWN2q#9tfO8DCKp z`^JNBQ_et1NBFXruk`8Ea}9d~+j4Rm*qggM&g}Z+Q0Wch`75XPZVrfX%1;C4BwC(TNo?rgS)3AD|zoo#>Kc&4K@B?WzYt(h|o45T3(OFo= literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/copper_bonded_al2o3_pcb.png b/kubejs/assets/tfg/textures/item/copper_bonded_al2o3_pcb.png new file mode 100644 index 0000000000000000000000000000000000000000..f002ac2f103da7ec10d897637e86179dbbf90671 GIT binary patch literal 4441 zcmeHKeNax@sL3t+22w)~>qRwPM+oT5%cCb`{$#W$#P)obAjGGu!`2 z=HQt z<%Nt7T^oh(nNJ-?x4cuFduaJwzRUhARI#AJ_+D#v;QN|~b*&%WA304za zcspS!4%z$-n!0&^_T>jprN^efe4`uBc@f@NKl0&6f7!Uzvo}k7<;do*dcAJz!}wJ5 zn<3k(JA#`RH|~$fh0O_qOcGMf;t%4o}b|fV?#;o7lG4#`|KM^nH5C6Tlt*iHE$@_QiqFo(4-SP8!fsp>- zpz-RexnV8ym#ppXL2oTv8S?pkS1oVDP>br^==G-G8qODm&3mOoOgALn54zv8&tku^ zBI0Pvp#@FRwR_lQ8qcsSK5Nd*i>G|B}1pi`M0Bdvo}=Unp&?&227OSbUlP<-b2Ija`v^@2L|PfByZm ziyB6jwOzR=$VeVdw3qf?d{f=$2!65xCG*SPg>*}rf^S^7z2}3|r{PbI-g-)TQ^3$Ly3YrI9O>Xz`;fF)J=*>y>Jjd@=)g!w>(N!>@xC(V^F~VjM;-t+;2|X4& zs5%}`mE^JGL@5~0mu5{Z>cr3gVqC<+4&*ja96aSv>DF6AKn7#hk+ zI2b$2*sKtTi5qP$RxJ>Kb!gl_i(RLifVVowSO9#8Jh)vX79t{xMKsmI$!g00$e2Sv zXyMd@Gb+lXoHmz(ptNO_m0da&f+QyF?JkGe7Y<2?C^KaNs!p)0c-od3nYx?_3yuO4 zW3l_J0NK+tS%#h@YnpG|iZ7h0jsWus+-ch5vHO&PmQIIhY=nz*FH@ryaQkDVjbKR3 z_ex7?ik9FwOrl~LEJY*~tdxn3Fe1kZg*;J7D5a7qP?=UIi(3hbg96|}2H+SGiGrl1 z1T2+H<*-z#Bw(dds)Q93r8H8MOs+JdQy{V(45&)nJk=`>iUd%!0;OdrLck<}0w@Xr z-Vn45CTOulArs3`QbzcoNCHc@IV?CxCu6})l*n#1`4%|Bv6P%lwEz_&lad@W&eFg@ zEzscvl$}4hqGv2rK8tg7isf>#LYBx4N>r-wJM9B3pd3z6iX5mI5lR$3b1p9!hz2l= zbA<{3d~y&Bmgb;v*5=ULY-Y89gMc{8iDex)PbALb8l0s7D1s(p2#TQ+J)*?Ki5SQP zBEyg=`ZkiG%m0@)cX}X|Kj&*0C)mH-C-NVue5%wx^H0r;?<_%(?^Iwo;Sa%ymr zn9^o|onHpp7wCqfiFPJh|Mbtsvub85-Uw_ib)#-2o&a_BBOL9`EsJ?g`-S zZhR65gV{`-Hu%n*g%Ocaw+4h}>fdG`#b zf;RW`Vy@f$O;_LFvqKR=mzKH*Hl^k*5SqMc1AptkX0PhobN9y0)t?XlVYsjTY|+la z@NYMjzZ93dai0XM!e5U5{PzB4ZGPY(e@yi9GD#+$ma>Obtx BSPK9E literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/fired_chorus_ceramic_insulation.png b/kubejs/assets/tfg/textures/item/fired_chorus_ceramic_insulation.png new file mode 100644 index 0000000000000000000000000000000000000000..603021eac33b5504569cfc85837c0c6bd3a0f088 GIT binary patch literal 409 zcmV;K0cQS*P)Tld(#}P!xv0NK;DF3>hp$B6P|k6v@~}5c&#EeTP0n z-=UMQP;|CSg+hY_x@0OCEU4JQG+b(+PWN)Ji8$z;F5&;abI#=i{&=k40*^O$M|r=z zzN+MF1v=Cl^eKhlkQcn9Sw&*ifk70~Xte++g)rnjM9$5e<5_sA^vsomnqJ)dLcL185Hix_b;M_lBHklp`0YEnl$l_F0Ern23Eg2jusPU^pIGNxZIvzE{=dl@5mEk+qsHD|1S~b{&#<&1$|> zdr-T|v&r<>k1p74cXY#m)qH6b(X&7POmb1`pnpAI9#Nt;f1htm00000NkvXXu0mjf Dm$r@B$xN6fFO$Ip>}u8G zqg2FFEo*7j^?`!2wzQ{OYJmz>s~%mkt%9J7MXj_Vr&ir9>fQd=2aqc1BJ&*pZbaR{i!p5J>C2hM;p*}5#O*4fX66Q@0{>Sam zR!_{{ereysCG~ah&#jms+?c#;ZTVJ@@a<{Hd`mq+vb2 zHV^I|lbxa2S8{MlQOxrxv!^$G>R-LSr>1H11J5g;EDroIEbg&DAS__x;!@Ocas9=B z63YI%tv2aobWmev)BO0^c!dbBeDRVx)n`Qd}&AwE;@0i@DYK+&K zu=L<%Wx2W5=RE4CK~IJ4`|iLqR-?$ro4Rit8{c(Ld9O_vyZ1}!9DgrqYk1R{H%iYR zd9!|zcc4m8?S1wferx)RV=i>(j-Qs$P2bGtV#m)BVj2E11&oZqM!q2Tazs znMFt6J{+)X;@0=LnD&IKImqgp%ecii{x(5U^1;j^|H4L5`e&uv7i@99DX;ho(cyb_ zQf1kv@|^8cbFP=vV()ynXvgtnyN5bVH#R^u>)@WZe2fj*->5$4l!5r`#$oLN%-JM?G#mvaqx)dqzP(^o7Ekuf63~|LX3=jXx{PffeWz?|ZE0<(H8ekYA~-bF_PMrh)eg{g`7G$J49x<9vY14q-lC&L zPLmb1oj?#7<+PGi4$VP2+Q6EXa92$&46%A8yhx_OG}bsen@!BO(P{a~S}H$>Qt08R zmwY0f1RyZc90@s1Mzfu8Dq$Bd0iJm?3PUakm!pI;G$~M=#YRI?kyL~s@lJLn4!`6B zMcVWXk*b>4M*-fHa5l$T2^4iW93qEAWU(1gu|lChF&xEl1RxN5o|z+^h}j;>Q}lAE zXgg(NtsHAHLp&#`v*dD07zTc*KR=UIqZyz#+xt`idZ13yii$-TYBHfiBkWxKNFsgXikO^u{%0L7! zfq^wyT~R>nVMvZ;2E`hd8}D(IGc*wpKEOK+-Cw&43{V;kp|Vi9e0pk?66VJz^cITM z6RtML0r}j0}-VDF%@b9LFOh3bB-b9t5S+HaloVo>Yv9ByyLBpBDmD z1C%BCMg;^eJ1B;Tv(Y4Hv1u(9qY~zGg80Y*w+5^yJ;{+OlA{4BhKCavPT;r}mk=^J zA&WpT8G#MKTl6fG_y5rR>VYDA=RA?MgYolRrrsr$Mz837>wPt{uC)X~u2n&hRBs7( zawV;IR^Dn|KTqrc=x z^nXN&bODBJGa#|4l*KrN97uoYeWi+2t3+d zqjHT%ff0d6yX$w8%V+RFMVrCjAO|=u9hkTv101zHbx8>-!8885`$TyOu#B}PF18B< zz7zRNDA-vR2#j8wS`+Ve*KM)~F*mbHydIbysZ}vr`Ps&8$|Uy~{|&oZsxcMpdBQhv z+=PbY8Ao=C{GUH_;kh3#f1AaI9BPR5ZE5+n^poPl$Is^*qEBn*N`CzL3yFJYQQe}T zq6FsY7d6NI(%qJ6s?I-M?h*aUj&p6x53M&HD>zt_lv6$C^-b2YAPBy$*(&L%a5S6V zo3r2h!xy0GHc2jZ3l&=D7 z8vY&@6tVNv?a53Nn-4S2S%e%eZv4qu@mMzt8*- xaISp$iu>HNqgOK4omjJ4nz?7}t%_$!uL;p2&M#oo%t=53fjT}}RTZ1H?!WaAUGe|` literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/optical_borosilicate_blank.png b/kubejs/assets/tfg/textures/item/optical_borosilicate_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..0730a13a01754b5df350bb70710f8489a5ac1727 GIT binary patch literal 723 zcmV;^0xbQBP)EX>4Tx04R}tkv&MmKp2MKrk09S9n2u&kfAzR5EXHhDi*;)X)CnqU~=gnG%+M8 zE{=k0!NH%!s)LKOt`4q(Aov5~W_XzO)F2=L`>;4?QYQbVaKq8)HhG`S86Hjm2 z2IqZZk(FhY_?&pmqze*1a$WKGjdRImfoFKlt5St2jB~B}L*u=*4k9Mu6}x(5ySo_p#$NPk`VvaHY5X8x3IQlk|F9 ziyi^}+rY(jTT}Lc%N=0w$&gLim4dW{Vi9;hqi@Os1GhlWs@J#HIZhvdEcI&X1~@nb zMoW~v=JW3E&c6Ly)9T+36aR97(V_-Z0003BNklAvx5QRU7KtY4N2|5@$ zBor^13|>9@A9RU-oxJoPbj+I7qX{86gc?yW5k=6+o$Ojp=-i<oS<;`~52b%X!B^7{?J(3IMEi6vehbpFh~`-n>T3xj0Rq0Z5WHO=AF1 zDnv>_97h2Cw8>&Bj^hZWLXu<+fH7Ckos@#r>X9tV$MtSj0B9QHi3e=0Lx=~DyI>Xr zS*Z}ELX5d$tpnhAY;T5n4%)UGv9)geL@5PzeYt1$$AQ*m&~=}*ZRd%tb=36*=e_`_ zs*`sK&w@DA|%8GS?6*_y*s`ZS6aOt^5E0002ovPDHLk FV1lCEPNx6> literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/silicon_seed_crystal.png b/kubejs/assets/tfg/textures/item/silicon_seed_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..93ac8051c17fdc7354fa97f22c0c45dbc7ca4103 GIT binary patch literal 367 zcmV-#0g(QQP)*lCev}Kp4e;DV>B!7qjJ`=-?vgRLGRIAPD{!Zmurk z>RMzdqtiJ<2+3eHGzYY{etT~;Fe5A$F958RBIpH%3n5u%8EHCa zUu>)ZzhxkVq$~;mf?hx}Nmwam_Fd1nf^5Op(+oyKmRSa1Of;X)B;D>g{V=qGG#%`V zjWeA|w&l(;(a;6zux4tXoSGJ|E-u-YJJNJ+_K$P;@mJN2n!@`#H~@*=jjk5OMa=*J N002ovPDHLkV1l*Yo4f!3 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/worked_optical_borosilicate_blank.png b/kubejs/assets/tfg/textures/item/worked_optical_borosilicate_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..01aa732baa2df607912fb9c2d69d6dd430a731f9 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p>My0`@x*DCKV1qyEPba4!^@IO20Ebn0jp4Pj52U+IKCo@x}8!KSVy>)1R}>;`{ApT~m-g7Q8|ZchPgg&ebxsLQ03eucc>n+a literal 0 HcmV?d00001 diff --git a/kubejs/client_scripts/tooltips.js b/kubejs/client_scripts/tooltips.js index 4a4f171b0..ce06f1847 100644 --- a/kubejs/client_scripts/tooltips.js +++ b/kubejs/client_scripts/tooltips.js @@ -138,6 +138,14 @@ const registerTooltips = (event) => { text.add(2, Text.translate('tfg.tooltip.machine.smt_2')); text.add(3, Text.translate('tfg.tooltip.machine.smt_3')); }) + event.addAdvanced(['tfg:high_temp_precision_fabricator'], (item, advanced, text) => { + text.add(1, Text.translate('tfg.tooltip.machine.high_temp_precision_fabricator_1')); + text.add(2, Text.translate('tfg.tooltip.machine.high_temp_precision_fabricator_2')); + text.add(3, Text.translate('gtceu.machine.electric_blast_furnace.tooltip.0')); + text.add(4, Text.translate('gtceu.machine.electric_blast_furnace.tooltip.1')); + text.add(5, Text.translate('gtceu.machine.electric_blast_furnace.tooltip.2')); + text.add(6, Text.translate('tfg.tooltip.machine.two_energy_hatches')); + }) event.addAdvanced(['deafission:fission_reactor_mk1'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.machine.fission_reactor_mk1_1')); text.add(2, Text.translate('tfg.tooltip.machine.fission_reactor_mk1_2')); @@ -517,9 +525,9 @@ const registerTooltips = (event) => { event.addAdvanced(['tfg:vintage_sake_bucket'], (item, advanced, text) => { text.add(1, Text.translate("effect.minecraft.resistance").append(Text.of(" II (08:00)")).blue()); }) - event.addAdvanced(['tfg:vintage_vodka_bucket'], (item, advanced, text) => { - text.add(1, Text.translate("effect.minecraft.resistance").append(Text.of(" III (04:00)")).blue()); - }) + event.addAdvanced(['tfg:vintage_vodka_bucket'], (item, advanced, text) => { + text.add(1, Text.translate("effect.minecraft.resistance").append(Text.of(" III (04:00)")).blue()); + }) event.addAdvanced(['tfg:vintage_whiskey_bucket'], (item, advanced, text) => { text.add(1, Text.translate("effect.minecraft.haste").append(Text.of(" III (04:00)")).blue()); }) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 01a0a1c43..77662caeb 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -17,71 +17,7 @@ const registerGTCEURecipes = (event) => { generateMixerRecipe(event, ['2x #tfg:stone_dusts'], ['gtceu:lubricant 20', "#tfg:clean_water 4000"], [], null, Fluid.of('gtceu:drilling_fluid', 5000), 40, 16, 64, 'drilling_fluid') - //#region Quantum mainframe stack fix. - // - // Quantum Mainframes need 48x annealed copper wire but - // the stacking limit is 32 so instead allow 24x 2x. - // - // Frustratingly event.replaceInput doesn't allow for - // changing item counts, only types. - event.remove(/gtceu:circuit_assembler\/quantum_mainframe_zpm.*/) - event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm') - .itemInputs( - '2x gtceu:hssg_frame', - '2x gtceu:quantum_processor_computer', - '48x gtceu:smd_capacitor', - '24x gtceu:smd_inductor', - '24x gtceu:ram_chip', - '24x gtceu:annealed_copper_double_wire') - .inputFluids(Fluid.of('gtceu:tin', 576)) - .itemOutputs('gtceu:quantum_processor_mainframe') - .duration(800) - .EUt(7680) - - event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm_soldering_alloy') - .itemInputs( - '2x gtceu:hssg_frame', - '2x gtceu:quantum_processor_computer', - '48x gtceu:smd_capacitor', - '24x gtceu:smd_inductor', - '24x gtceu:ram_chip', - '24x gtceu:annealed_copper_double_wire') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .itemOutputs('gtceu:quantum_processor_mainframe') - .duration(800) - .EUt(7680) - - event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm_asmd') - .itemInputs( - '2x gtceu:hssg_frame', - '2x gtceu:quantum_processor_computer', - '12x gtceu:advanced_smd_capacitor', - '6x gtceu:advanced_smd_inductor', - '24x gtceu:ram_chip', - '24x gtceu:annealed_copper_double_wire') - .inputFluids(Fluid.of('gtceu:tin', 576)) - .itemOutputs('gtceu:quantum_processor_mainframe') - .duration(800) - .EUt(7680) - - event.recipes.gtceu.circuit_assembler('quantum_mainframe_zpm_asmd_soldering_alloy') - .itemInputs( - '2x gtceu:hssg_frame', - '2x gtceu:quantum_processor_computer', - '12x gtceu:advanced_smd_capacitor', - '6x gtceu:advanced_smd_inductor', - '24x gtceu:ram_chip', - '24x gtceu:annealed_copper_double_wire') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .itemOutputs('gtceu:quantum_processor_mainframe') - .duration(800) - .EUt(7680) - //#endregion - - - // #region Superconductor - - // Move MV superconductor to mid-late MV instead of post-vac freezer + // #region Move MV superconductor to mid-late MV instead of post-vac freezer event.remove({ id: 'gtceu:shaped/mv_chemical_bath' }) event.shaped('gtceu:mv_chemical_bath', [ diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js index 6c879b488..1743d31a6 100644 --- a/kubejs/server_scripts/gregtech/recipes.machines.js +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -648,7 +648,7 @@ function registerGTCEuMachineRecipes(event) { //#region Long distance pipes event.recipes.gtceu.assembler('long_distance_item_pipe') - .itemInputs('1x #forge:large_item_pipes/polyvinyl_chloride', '4x #forge:plates/vanadium_steel') + .itemInputs('1x #forge:large_item_pipes/polyvinyl_chloride', '4x #forge:plates/stainless_steel') .inputFluids(Fluid.of('gtceu:soldering_alloy', 72)) .itemOutputs('32x gtceu:long_distance_item_pipeline') .EUt(GTValues.VA[GTValues.HV]) @@ -656,7 +656,7 @@ function registerGTCEuMachineRecipes(event) { .duration(300) event.recipes.gtceu.assembler('long_distance_fluid_pipe') - .itemInputs('1x #forge:large_fluid_pipes/vanadium_steel', '4x #forge:plates/polyvinyl_chloride') + .itemInputs('1x #forge:large_fluid_pipes/stainless_steel', '4x #forge:plates/polyvinyl_chloride') .inputFluids(Fluid.of('gtceu:soldering_alloy', 72)) .itemOutputs('32x gtceu:long_distance_fluid_pipeline') .EUt(GTValues.VA[GTValues.HV]) @@ -664,7 +664,7 @@ function registerGTCEuMachineRecipes(event) { .duration(300) event.recipes.gtceu.assembler('long_distance_item_endpoint') - .itemInputs('2x #forge:large_item_pipes/polyvinyl_chloride', '8x #forge:plates/vanadium_steel', '2x #forge:gears/stainless_steel') + .itemInputs('2x #forge:large_item_pipes/polyvinyl_chloride', '8x #forge:plates/stainless_steel', '2x #forge:gears/stainless_steel') .inputFluids(Fluid.of('gtceu:soldering_alloy', 144)) .itemOutputs('2x gtceu:long_distance_item_pipeline_endpoint') .EUt(GTValues.VA[GTValues.HV]) @@ -673,7 +673,7 @@ function registerGTCEuMachineRecipes(event) { .addMaterialInfo(true, true) event.recipes.gtceu.assembler('long_distance_fluid_endpoint') - .itemInputs('2x #forge:large_fluid_pipes/vanadium_steel', '8x #forge:plates/polyvinyl_chloride', '2x #forge:gears/stainless_steel') + .itemInputs('2x #forge:large_fluid_pipes/stainless_steel', '8x #forge:plates/polyvinyl_chloride', '2x #forge:gears/stainless_steel') .inputFluids(Fluid.of('gtceu:soldering_alloy', 144)) .itemOutputs('2x gtceu:long_distance_fluid_pipeline_endpoint') .EUt(GTValues.VA[GTValues.HV]) diff --git a/kubejs/server_scripts/gtmoderntuilities/recipes.js b/kubejs/server_scripts/gtmoderntuilities/recipes.js new file mode 100644 index 000000000..cba2f617f --- /dev/null +++ b/kubejs/server_scripts/gtmoderntuilities/recipes.js @@ -0,0 +1,27 @@ +"use strict"; + +const registerGTModernUtilitiesRecipes = (event) => { + + event.remove({ + not: [ + { id: 'gtmutils:shaped/ulv_auto_charger_4x' }, + { id: 'gtmutils:shaped/lv_auto_charger_4x' }, + { id: 'gtmutils:shaped/mv_auto_charger_4x' }, + { id: 'gtmutils:shaped/hv_auto_charger_4x' }, + { id: 'gtmutils:shaped/ev_auto_charger_4x' }, + { id: 'gtmutils:shaped/iv_auto_charger_4x' }, + { id: 'gtmutils:shaped/luv_auto_charger_4x' }, + { id: 'gtmutils:shaped/zpm_auto_charger_4x' }, + { id: 'gtmutils:shaped/uv_auto_charger_4x' }, + { id: 'gtmutils:shaped/uhv_auto_charger_4x' }, + { id: 'gtceu:assembler/omnibreaker' }, + { id: 'gtceu:shaped/luv_power_unit_lapotronic_energy_orb_cluster' }, + { id: 'gtceu:shaped/zpm_power_unit_energy_module' }, + ], mod: 'gtmutils' + }); + + global.GTM_UTILITIES_DISABLED_ITEMS.forEach(item => { + event.remove({ output : item }) + }) + +} diff --git a/kubejs/server_scripts/gtmoderntuilities/tags.js b/kubejs/server_scripts/gtmoderntuilities/tags.js new file mode 100644 index 000000000..afd59d1ae --- /dev/null +++ b/kubejs/server_scripts/gtmoderntuilities/tags.js @@ -0,0 +1,19 @@ +// priority: 0 +"use strict"; + +const registerGTModernUtilitiesItemTags = (event) => { + + // Удаление тегов у отключенных предметов + global.GTM_UTILITIES_DISABLED_ITEMS.forEach(item => { + event.removeAllTagsFrom(item) + event.add('c:hidden_from_recipe_viewers', item) + }) +} + +const registerGTModernUtilitiesBlockTags = (event) => { + + // Удаление тегов у отключенных предметов + global.GTM_UTILITIES_DISABLED_ITEMS.forEach(item => { + event.removeAllTagsFrom(item) + }) +} \ No newline at end of file diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index 15b128fde..b8e2f3b65 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -37,6 +37,7 @@ ServerEvents.tags('item', event => { registerFTBQuestsItemTags(event) registerGrapplemodItemTags(event) registerGreateItemTags(event) + registerGTModernUtilitiesItemTags(event) registerGTCEUItemTags(event) registerImmersiveAircraftItemTags(event) registerMacawsForTFCItemTags(event) @@ -85,6 +86,7 @@ ServerEvents.tags('block', event => { registerFTBQuestsBlockTags(event) registerGreateBlockTags(event) registerGTCEUBlockTags(event) + registerGTModernUtilitiesBlockTags(event) registerMegaCellsBlockTags(event) registerMinecraftBlockTags(event) registerMoreRedBlockTags(event) @@ -264,6 +266,7 @@ ServerEvents.recipes(event => { registerGreateRecipes(event) registerGTCEURecipes(event); registerGTCEUTerminalRecipes(event) + registerGTModernUtilitiesRecipes(event) registerHandGliderRecipes(event) registerHotOrNotRecipes(event) registerImmersiveAircraftRecipes(event) @@ -297,6 +300,7 @@ ServerEvents.recipes(event => { registerWaterFlasksRecipes(event) registerWABRecipes(event) registerTFCScrapingKnivesRecipes(event) + registerTFGCircuitBoardsRecipes(event) }) TaCZServerEvents.gunIndexLoad((event) => { diff --git a/kubejs/server_scripts/tacz/recipes.attach.js b/kubejs/server_scripts/tacz/recipes.attach.js index 4ffab3aa5..3439f08ea 100644 --- a/kubejs/server_scripts/tacz/recipes.attach.js +++ b/kubejs/server_scripts/tacz/recipes.attach.js @@ -94,13 +94,13 @@ function registerTACZAttachRecipes(event){ //Muzzles event.recipes.gtceu.assembler('tfg_tacz:ca_large_tank') - .itemInputs('2x gtceu:red_steel_tiny_fluid_pipe', '2x gtceu:steel_fluid_cell', '8x #forge:rings/silicone_rubber', + .itemInputs('2x gtceu:potin_tiny_fluid_pipe', '2x gtceu:steel_fluid_cell', '8x #forge:rings/silicone_rubber', '4x #forge:rings/stainless_steel', '#forge:plates/stainless_steel', '8x #forge:screws/stainless_steel') .itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:muzzle_refit_bigger_cylinder"}')) .EUt(GTValues.VA[GTValues.MV]) .duration(20) event.recipes.gtceu.assembler('tfg_tacz:ca_lava_tube') - .itemInputs('4x gtceu:blue_steel_tiny_fluid_pipe', 'gtceu:steel_fluid_cell', '4x gtceu:tempered_glass', + .itemInputs('4x gtceu:steel_tiny_fluid_pipe', 'gtceu:steel_fluid_cell', '4x gtceu:tempered_glass', '4x #forge:rings/stainless_steel', '#forge:plates/rose_gold', '8x #forge:screws/stainless_steel') .inputFluids(Fluid.of('minecraft:lava', 2000)) .itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"create_armorer:muzzle_refit_lava_perfusion_bottle"}')) @@ -108,26 +108,26 @@ function registerTACZAttachRecipes(event){ .duration(20) event.recipes.gtceu.assembler('tfg_tacz:aa_compensator') - .itemInputs('gtceu:tungsten_small_fluid_pipe') + .itemInputs('gtceu:tungsten_steel_small_fluid_pipe') .itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_bs_mod4"}')) .circuit(1) .EUt(GTValues.VA[GTValues.EV]) .duration(20) event.recipes.gtceu.assembler('tfg_tacz:aa_commander') - .itemInputs('gtceu:tungsten_small_fluid_pipe') + .itemInputs('gtceu:tungsten_steel_small_fluid_pipe') .itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_commander"}')) .circuit(2) .EUt(GTValues.VA[GTValues.EV]) .duration(20) event.recipes.gtceu.assembler('tfg_tacz:aa_silencer') - .itemInputs('gtceu:tungsten_small_fluid_pipe') + .itemInputs('gtceu:tungsten_steel_small_fluid_pipe') .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 288)) .itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_ns_1"}')) .circuit(3) .EUt(GTValues.VA[GTValues.EV]) .duration(20) event.recipes.gtceu.assembler('tfg_tacz:aa_thick_silencer') - .itemInputs('gtceu:tungsten_small_fluid_pipe') + .itemInputs('gtceu:tungsten_steel_small_fluid_pipe') .inputFluids(Fluid.of('gtceu:polytetrafluoroethylene', 576)) .itemOutputs(Item.of('tacz:attachment', '{AttachmentId:"applied_armorer:muzzle_classic"}')) .circuit(4) diff --git a/kubejs/server_scripts/tacz/recipes.guns.js b/kubejs/server_scripts/tacz/recipes.guns.js index 93a60512b..e737190b2 100644 --- a/kubejs/server_scripts/tacz/recipes.guns.js +++ b/kubejs/server_scripts/tacz/recipes.guns.js @@ -10,7 +10,7 @@ function registerTACZGunRecipes(event){ ], { A: '#forge:tools/files', B: 'tfg:flintlock_mechanism', - C: 'gtceu:lead_small_fluid_pipe', + C: 'gtceu:tin_alloy_small_fluid_pipe', D: '#firmaciv:hard_wood', E: '#forge:tools/saws', F: '#forge:ingots/brass', @@ -235,7 +235,7 @@ function registerTACZGunRecipes(event){ .duration(240) event.recipes.gtceu.assembler('tfg_tacz:ca_cannon') - .itemInputs('2x gtceu:tungsten_large_fluid_pipe', '2x gtceu:tungsten_normal_fluid_pipe', '10x #forge:ingots/titanium', + .itemInputs('2x gtceu:tungsten_steel_large_fluid_pipe', '2x gtceu:tungsten_steel_normal_fluid_pipe', '10x #forge:ingots/titanium', '4x #forge:ingots/tungsten', '10x #forge:plates/brass', 'create:gantry_shaft', '4x gtceu:treated_wood_planks', '30x #forge:screws/tungsten', '3x tfg:advanced_clockwork_mechanism') .inputFluids(Fluid.of('gtceu:soldering_alloy', 3024)) diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 728c185d4..9bf8ab910 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -101,6 +101,7 @@ function registerTFGItemSize(event) { event.itemSize("tfg:trowel", "large", "medium", "trowel"); event.itemSize("tfg:railgun_ammo_shell", "large", "light", "railgun_ammo_shell"); + event.itemSize("tfg:quartz_crucible", "large", "very_heavy", "quartz_crucible"); event.itemSize("tfg:harvest_basket", "large", "medium", "harvest_basket"); event.itemSize("tfg:aluminium_harvest_basket", "large", "medium", "aluminium_harvest_basket"); diff --git a/kubejs/server_scripts/tfg/hv_rework/material.recipes.js b/kubejs/server_scripts/tfg/hv_rework/material.recipes.js new file mode 100644 index 000000000..221c8ade9 --- /dev/null +++ b/kubejs/server_scripts/tfg/hv_rework/material.recipes.js @@ -0,0 +1,214 @@ +function registerTFGHVMaterialRecipes(event) { + + event.recipes.gtceu.mixer('tfg:mo_50_re_dust') + .itemInputs( + Item.of('gtceu:rhenium_dust', 1), + Item.of('gtceu:molybdenum_dust', 1)) + .itemOutputs(Item.of('tfg:mo_50_re_dust', 2)) + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + .circuit(1) + + // Modify Electronic Component to require Silicon Rubber + + event.replaceInput({ id: 'gtceu:shaped/filter_casing' }, Item.of('gtceu:steel_frame'), Item.of('tfg:mo_50_re_frame')) + event.remove({ id: 'gtceu:assembler/plascrete'}) + event.remove({ id: 'gtceu:assembler/cleanroom_glass'}) + + event.recipes.gtceu.assembler('tfg:plascrete') + .itemInputs( + Item.of('tfg:mo_50_re_frame', 1), + Item.of('gtceu:polyethylene_plate', 6), + Item.of('gtceu:steel_plate', 2)) + .inputFluids(Fluid.of('gtceu:concrete', 144)) + .itemOutputs(Item.of('gtceu:plascrete', 2)) + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + .addMaterialInfo(true, true) + + event.recipes.gtceu.assembler('tfg:cleanroom_glass') + .itemInputs( + Item.of('tfg:mo_50_re_frame', 1), + Item.of('gtceu:polyethylene_plate', 6), + Item.of('gtceu:steel_plate', 2)) + .inputFluids(Fluid.of('gtceu:glass', 144)) + .itemOutputs(Item.of('gtceu:cleanroom_glass', 2)) + .duration(20 * 10) + .EUt(GTValues.VA[GTValues.MV]) + .addMaterialInfo(true, true) + + // Allow HV Cutter at HV (Ultimet) + + event.recipes.gtceu.chemical_bath('tfg:ultimet_cool_down') + .itemInputs(Item.of('#forge:hot_ingots/ultimet', 1)) + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs(Item.of('#forge:ingots/ultimet', 1)) + .duration(20*36) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:ultimet_cool_down_distilled_water') + .itemInputs(Item.of('#forge:hot_ingots/ultimet', 1)) + .inputFluids(Fluid.of('gtceu:distilled_water', 100)) + .itemOutputs(Item.of('#forge:ingots/ultimet', 1)) + .duration(20*21) + .EUt(GTValues.VA[GTValues.MV]) + + // Rutile changes + + event.remove({ id: 'gtceu:chemical_reactor/titanium_tetrachloride'}) + event.remove({ id: 'gtceu:large_chemical_reactor/titanium_tetrachloride'}) + event.recipes.gtceu.chemical_reactor('tfg:titanium_tetrachloride') + .itemInputs(Item.of('gtceu:carbon_dust', 2), Item.of('gtceu:rutile_dust', 3)) + .inputFluids(Fluid.of('gtceu:chlorine', 4000)) + .outputFluids(Fluid.of('gtceu:carbon_monoxide', 2000), Fluid.of('gtceu:titanium_tetrachloride', 1000)) + .duration(20*20) + .EUt(GTValues.VA[GTValues.HV]) + + event.remove({ id: 'gtceu:electrolyzer/bauxite_electrolysis'}) + event.recipes.gtceu.electrolyzer('tfg:bauxite_electrolysis') + .itemInputs(Item.of('gtceu:bauxite_dust', 15)) + .itemOutputs(Item.of('gtceu:aluminium_dust', 6)) + .outputFluids(Fluid.of('gtceu:oxygen', 9000)) + .duration(20*13.5) + .EUt(GTValues.VA[GTValues.MV]) + + //#region Stone dust stuffs + + // Perlite + + event.remove({ id: 'gtceu:extractor/extract_igneous_felsic_dust'}) + event.recipes.gtceu.coal_liquefaction_tower('tfg:molten_felsic_silicate') + .itemInputs(Item.of('tfg:igneous_felsic_dust', 16)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 1), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of('tfg:igneous_felsic', 144*16)) + .duration(20 * 50) + .EUt(GTValues.VA[GTValues.LV]); + + event.recipes.gtceu.mixer('tfg:obsidian_dust') + .inputFluids(Fluid.of('tfg:igneous_felsic', 144), Fluid.of('gtceu:ice', 1000)) + .itemOutputs(Item.of('gtceu:obsidian_dust', 1)) + .duration(20 * 28) + .EUt(GTValues.VA[GTValues.LV]); + + event.recipes.gtceu.gas_pressurizer('tfg:obsidian_dust') + .itemInputs(Item.of('gtceu:obsidian_dust', 1)) + .inputFluids(Fluid.of('gtceu:steam', 1000)) + .itemOutputs(Item.of('gtceu:perlite_dust', 1)) + .duration(20 * 16) + .EUt(GTValues.VA[GTValues.HV]); + + // Alumina + + event.recipes.gtceu.chemical_reactor('tfg:aluminium_sulfate') + .itemInputs(Item.of('tfg:igneous_felsic_dust', 1)) + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 1000)) + .itemOutputs(Item.of('tfg:aluminium_sulfate_dust', 1), Item.of('gtceu:potassium_sulfate_dust', 1), Item.of('gtceu:silicon_dioxide_dust')) + .outputFluids(Fluid.of('water', 1000)) + .duration(20 * 84) + .EUt(GTValues.VA[GTValues.LV]) + .circuit(2) + + event.recipes.gtceu.chemical_bath('tfg:aluminium_hydroxide_dust') + .itemInputs(Item.of('tfg:aluminium_sulfate_dust', 1)) + .inputFluids(Fluid.of('tfc:lye', 2000)) + .itemOutputs(Item.of('tfg:aluminium_hydroxide_dust', 2), Item.of('tfg:sodium_sulfate_dust', 1)) + .duration(20 * 16) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.arc_furnace('tfg:alumina_dust') + .itemInputs(Item.of('tfg:aluminium_hydroxide_dust', 2)) + .inputFluids(Fluid.of('gtceu:oxygen', 100)) + .itemOutputs(Item.of('tfg:alumina_dust', 1)) + .duration(20 * 8) + .EUt(GTValues.VA[GTValues.HV]) + + // Perlite is also a water purifier irl! + event.recipes.gtceu.distillery('tfg:distilled_water_perlite') + .itemInputs('#forge:dusts/perlite') + .inputFluids(Fluid.of('minecraft:water', 2000)) + .outputFluids(Fluid.of('gtceu:distilled_water', 2000)) + .duration(20*5) + .EUt(GTValues.VA[GTValues.LV]) + + // Change Titanium to require Nichrome Coils + + event.remove({ id: 'gtceu:electric_blast_furnace/titanium_from_tetrachloride'}) + event.recipes.gtceu.electric_blast_furnace('tfg:titanium_from_tetrachloride') + .itemInputs(Item.of('gtceu:magnesium_dust', 2)) + .inputFluids(Fluid.of('gtceu:titanium_tetrachloride', 1000)) + .itemOutputs(Item.of('gtceu:hot_titanium_ingot', 1), Item.of('gtceu:magnesium_chloride_dust', 6)) + .duration(20 * 30) + .blastFurnaceTemp(2750) + .EUt(GTValues.VA[GTValues.HV]) + + // Let's also do NaqLine here + event.remove({ id: 'gtceu:electric_blast_furnace/titanium_trifluoride_separation'}) + event.recipes.gtceu.electric_blast_furnace('tfg:titanium_trifluoride_separation') + .itemInputs(Item.of('gtceu:titanium_trifluoride_dust', 4)) + .inputFluids(Fluid.of('gtceu:hydrogen', 3000)) + .itemOutputs(Item.of('gtceu:hot_titanium_ingot', 1)) + .outputFluids(Fluid.of('gtceu:hydrofluoric_acid', 3000)) + .duration(20 * 30) + .blastFurnaceTemp(2750) + .EUt(GTValues.VA[GTValues.HV]) + + //#endregion + + //#region Inconel Line + + event.recipes.gtceu.vacuum_freezer('tfg:inert_furnace_atmosphere_dumb') + .itemInputs(Item.of('tfc:pure_nitrogen', 64)) + .inputFluids(Fluid.of('gtceu:argon', 32000), Fluid.of('gtceu:hydrogen', 64000)) + .outputFluids(Fluid.of('tfg:inert_furnace_atmosphere', 600)) + .duration(20 * 200) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.mixer('tfg:weak_inconel_718') + .inputFluids(Fluid.of('tfg:inert_furnace_atmosphere', 1200)) + .itemInputs( + Item.of('gtceu:nickel_dust', 5), + Item.of('gtceu:chromium_dust', 2), + Item.of('gtceu:molybdenum_dust', 2), + Item.of('gtceu:niobium_dust', 1), + Item.of('gtceu:aluminium_dust', 1), + Item.of('gtceu:titanium_dust', 1)) + .itemOutputs(Item.of('tfg:weak_inconel_718_dust', 12)) + .outputFluids(Fluid.of('tfg:metal_desorption_gas', 12000)) + .duration(20 * 48) + .EUt(GTValues.VA[GTValues.HV]) + .circuit(4) + + event.recipes.gtceu.chemical_reactor('tfg:homogenized_inconel_718') + .inputFluids(Fluid.of('tfg:metal_desorption_gas', 1000)) + .itemInputs(Item.of('tfg:weak_inconel_718_ingot', 1)) + .itemOutputs(Item.of('tfg:homogenized_inconel_718_ingot', 1)) + .outputFluids(Fluid.of('tfg:reducing_process_gas', 1000)) + .duration(20 * 16) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:homogenized_inconel_718') + .inputFluids(Fluid.of('tfg:reducing_process_gas', 1000)) + .itemInputs(Item.of('tfg:homogenized_inconel_718_ingot', 1)) + .itemOutputs(Item.of('tfg:hot_inconel_718_ingot', 1)) + .blastFurnaceTemp(2810) + .duration(20 * 40) + .EUt(GTValues.VA[GTValues.EV]) + /* + event.forEachRecipe( + { id: 'gtceu:vacuum_freezer/cool_hot_inconel_718_ingot' }, + recipe => {recipe.outputFluids(Fluid.of('tfg:inert_furnace_atmosphere', 1000))}) + */ + + event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_inconel_718_ingot' }) + + event.recipes.gtceu.vacuum_freezer('tfg:cool_hot_inconel_718_ingot') + .itemInputs('tfg:hot_inconel_718_ingot') + .itemOutputs('tfg:inconel_718_ingot') + .outputFluids(Fluid.of('tfg:inert_furnace_atmosphere', 100)) + .duration(20 * 9.15) + .EUt(GTValues.VA[GTValues.MV]) + + // #endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/machines/recipes.boules.js b/kubejs/server_scripts/tfg/machines/recipes.boules.js new file mode 100644 index 000000000..46ae12925 --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.boules.js @@ -0,0 +1,128 @@ +// priority: 0 +"use strict"; + +function registerTFGBouleRecipes(event) { + + // Silicon seed crystal + + event.recipes.gtceu.chemical_reactor('tfg:chlorosilanes') + .itemInputs('4x #forge:dusts/silicon') + .inputFluids('gtceu:hydrochloric_acid 6000', 'gtceu:hydrogen 4000') + .outputFluids('tfg:chlorosilane 3000', 'tfg:trichlorosilane 1000') + .circuit(1) + .duration(3 * 20) + .EUt(GTValues.VHA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:silane') + .inputFluids('tfg:chlorosilane 3000', 'tfg:trichlorosilane 1000') + .outputFluids('tfg:dichlorosilane 3000', 'tfg:silane 1000') + .duration(3 * 20) + .EUt(GTValues.VHA[GTValues.MV]) + + event.recipes.gtceu.large_chemical_reactor('tfg:silane_shortcut') + .itemInputs('4x #forge:dusts/silicon') + .inputFluids('gtceu:hydrochloric_acid 6000', 'gtceu:hydrogen 4000') + .outputFluids('tfg:dichlorosilane 3000', 'tfg:silane 1000') + .circuit(2) + .duration(5 * 20) + .EUt(GTValues.VHA[GTValues.HV]) + + event.recipes.gtceu.electrolyzer('tfg:silane_decomp') + .inputFluids('tfg:silane 1000') + .outputFluids('gtceu:hydrogen 4000') + .itemOutputs('#forge:dusts/polysilicon') + .duration(3 * 20) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.autoclave('tfg:silicon_seed_crystal') + .itemInputs('#forge:dusts/polysilicon') + .inputFluids('minecraft:water 250') + .chancedOutput('tfg:silicon_seed_crystal', 7500, 0) + .duration(30 * 20) + .EUt(24) + + event.recipes.gtceu.autoclave('tfg:silicon_seed_crystal_distilled') + .itemInputs('#forge:dusts/polysilicon') + .inputFluids('gtceu:distilled_water 50') + .itemOutputs('tfg:silicon_seed_crystal') + .duration(15 * 20) + .EUt(24) + + // Crucible + + event.recipes.gtceu.arc_furnace('tfg:quartz_crucible') + .itemInputs('5x #forge:dusts/quartzite') + .notConsumable('tfc:crucible') + .itemOutputs('tfg:quartz_crucible') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.arc_furnace('tfg:quartz_crucible_nether') + .itemInputs('5x #forge:dusts/nether_quartz') + .notConsumable('tfc:crucible') + .itemOutputs('tfg:quartz_crucible') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.MV]) + + // Boules + + event.recipes.gtceu.high_temperature_precision_fabricator('tfg:silicon_boule') + .chancedInput('tfg:quartz_crucible', 500, 0) // 5% chance + .itemInputs('1x tfg:silicon_seed_crystal', '#forge:small_dusts/gallium_arsenide', '#tfg:precision_fabricator_holder_rods') + .inputFluids(Fluid.of('tfg:polysilicon', 32 * 144)) + .itemOutputs('gtceu:silicon_boule') + .circuit(1) + .duration(450 * 20) + .addData("ebf_temp", 1784) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.high_temperature_precision_fabricator('tfg:silicon_boule_cleanroom') + .chancedInput('tfg:quartz_crucible', 500, 0) // 5% chance + .itemInputs('1x tfg:silicon_seed_crystal', '#forge:small_dusts/gallium_arsenide', '#tfg:precision_fabricator_holder_rods') + .inputFluids(Fluid.of('tfg:polysilicon', 32 * 144)) + .itemOutputs('gtceu:silicon_boule') + .circuit(2) + // Duration discount if in a cleanroom + .cleanroom(CleanroomType.CLEANROOM) + .duration(300 * 20) + .addData("ebf_temp", 1784) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.high_temperature_precision_fabricator('tfg:phosphorus_boule') + .chancedInput('tfg:quartz_crucible', 2000, 0) // 20% chance + .itemInputs('4x tfg:silicon_seed_crystal', '8x #forge:dusts/phosphorus', '2x #forge:small_dusts/gallium_arsenide', '#tfg:precision_fabricator_holder_rods') + .inputFluids(Fluid.of('tfg:polysilicon', 64 * 144), 'gtceu:nitrogen 8000') + .itemOutputs('gtceu:phosphorus_boule') + .circuit(3) + .cleanroom(CleanroomType.CLEANROOM) + .duration(600 * 20) + .addData("ebf_temp", 2484) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.high_temperature_precision_fabricator('tfg:naquadah_boule') + .chancedInput('tfg:quartz_crucible', 5000, 0) // 50% chance + .itemInputs('8x tfg:silicon_seed_crystal', '#forge:dusts/gallium_arsenide', '#tfg:precision_fabricator_holder_rods') + .inputFluids(Fluid.of('tfg:polysilicon', 128 * 144), 'gtceu:naquadah 144', 'gtceu:argon 8000') + .itemOutputs('gtceu:naquadah_boule') + .circuit(4) + .cleanroom(CleanroomType.CLEANROOM) + .duration(750 * 20) + .addData("ebf_temp", 5400) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.high_temperature_precision_fabricator('tfg:neutronium_boule') + .chancedInput('tfg:quartz_crucible', 9900, 0) // 99% chance + .itemInputs('tfg:silicon_seed_crystal', '2x #forge:dusts/gallium_arsenide', '#tfg:precision_fabricator_holder_rods') + .inputFluids(Fluid.of('tfg:polysilicon', 256 * 144), Fluid.of('gtceu:neutronium', 144 * 4), 'gtceu:xenon 8000') + .itemOutputs('gtceu:neutronium_boule') + .circuit(5) + .cleanroom(CleanroomType.CLEANROOM) + .duration(900 * 20) + .addData("ebf_temp", 6484) + .EUt(GTValues.VA[GTValues.IV]) + + event.remove({ id: 'gtceu:electric_blast_furnace/silicon_boule' }) + event.remove({ id: 'gtceu:electric_blast_furnace/phosphorus_boule' }) + event.remove({ id: 'gtceu:electric_blast_furnace/naquadah_boule' }) + event.remove({ id: 'gtceu:electric_blast_furnace/neutronium_boule' }) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/machines/recipes.casings.js b/kubejs/server_scripts/tfg/machines/recipes.casings.js index 8e3318e24..f7b522070 100644 --- a/kubejs/server_scripts/tfg/machines/recipes.casings.js +++ b/kubejs/server_scripts/tfg/machines/recipes.casings.js @@ -9,6 +9,25 @@ function registerTFGCasingRecipes(event) { .duration(2.5 * 20) .EUt(16) + event.shaped('2x tfg:casings/sterling_silver_casing', [ + 'ABA', + 'ACA', + 'ADA' + ], { + A: '#forge:plates/sterling_silver', + B: '#forge:tools/hammers', + C: '#forge:frames/invar', + D: '#forge:tools/wrenches' + }).id('tfg:shaped/sterling_silver_casing') + + event.recipes.gtceu.assembler('sterling_silver_casing') + .itemInputs('6x #forge:plates/sterling_silver', '#forge:frames/invar') + .itemOutputs('2x tfg:casings/sterling_silver_casing') + .circuit(6) + .duration(2.5 * 20) + .EUt(16) + .addMaterialInfo(true) + // Railgun global.GTCEU_SUPERCONDUCTORS.forEach((type, index) => { const multiplier = index + 1 @@ -51,6 +70,7 @@ function registerTFGCasingRecipes(event) { .circuit(4) .duration(800) .EUt(GTValues.VA[GTValues.MV]) + .addMaterialInfo(true) event.recipes.gtceu.assembler('tfg:assembler/machine_casing_aluminium_plated_steel') .itemInputs( @@ -62,6 +82,7 @@ function registerTFGCasingRecipes(event) { .circuit(6) .duration(20 * (2.5)) .EUt(GTValues.VH[GTValues.LV]) + .addMaterialInfo(true, true) // Solar event.recipes.gtceu.assembler('basic_solar_casing') @@ -118,6 +139,7 @@ function registerTFGCasingRecipes(event) { .circuit(6) .duration(2.5 * 20) .EUt(16) + .addMaterialInfo(true) // Evaporation event.recipes.gtceu.assembler('tfg:casings/machine_casing_stainless_evaporation') @@ -127,6 +149,7 @@ function registerTFGCasingRecipes(event) { .circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true, true) // Ostrum Linear Acclerator event.recipes.gtceu.assembler('tfg:casings/machine_casing_mars') @@ -136,6 +159,7 @@ function registerTFGCasingRecipes(event) { .circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true, true) event.recipes.gtceu.assembler('gtceu:atomic_casing') .itemInputs('4x #forge:dense_plates/lead', '2x #forge:plates/rtm_alloy', '#forge:frames/titanium') @@ -144,6 +168,7 @@ function registerTFGCasingRecipes(event) { .circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true, true) // Heat Battery deafission:battery_heat_port_ev @@ -154,6 +179,7 @@ function registerTFGCasingRecipes(event) { //.circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true, true) event.recipes.gtceu.assembler('tfg:heat_input_hatch_ev') .itemInputs(Item.of('gtceu:ev_machine_hull', 1), Item.of('gtceu:rtm_alloy_coil_block'), Item.of('gtceu:beryllium_plate', 6)) @@ -162,6 +188,7 @@ function registerTFGCasingRecipes(event) { //.circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true, true) // Small Modular Turbine @@ -172,6 +199,7 @@ function registerTFGCasingRecipes(event) { .circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true, true) event.recipes.gtceu.assembler('tfg:uv_smr_fluid_import_hatch') .itemInputs('4x #forge:dense_plates/desh', '2x #forge:dense_plates/lead', Item.of('gtceu:iv_input_hatch', 1)) @@ -180,6 +208,7 @@ function registerTFGCasingRecipes(event) { //.circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true, true) // Vacuum Intake event.shaped('tfg:casings/machine_casing_vacuum_engine_intake', [ @@ -203,6 +232,7 @@ function registerTFGCasingRecipes(event) { .duration(50) .EUt(GTValues.VH[GTValues.LV]) .circuit(2) + .addMaterialInfo(true) event.recipes.gtceu.assembler('tfg:casings/machine_casing_power_casing') .itemInputs('gtceu:ostrum_frame', '4x #forge:plates/titanium_tungsten_carbide', '16x #forge:fine_wires/copper', @@ -212,4 +242,5 @@ function registerTFGCasingRecipes(event) { .circuit(6) .duration(2.5 * 20) .EUt(GTValues.VA[GTValues.EV]) + .addMaterialInfo(true, true) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/machines/recipes.circuit_board.js b/kubejs/server_scripts/tfg/machines/recipes.circuit_board.js new file mode 100644 index 000000000..a15b9ca77 --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.circuit_board.js @@ -0,0 +1,167 @@ +function registerTFGCircuitBoardsRecipes(event) { + + //event.remove({ input: 'gtceu:plastic_printed_circuit_board' }, Item.of('gtceu:plastic_printed_circuit_board'), Item.of('tfg:ceramic_printed_circuit_board')) + + const toRemove = [ + 'gtceu:chemical_reactor/plastic_board_pbi', + 'gtceu:chemical_reactor/plastic_board_polyethylene', + 'gtceu:chemical_reactor/plastic_board_ptfe', + 'gtceu:chemical_reactor/plastic_board_pvc', + 'gtceu:large_chemical_reactor/plastic_board_pbi', + 'gtceu:large_chemical_reactor/plastic_board_polyethylene', + 'gtceu:large_chemical_reactor/plastic_board_pvc', + 'gtceu:large_chemical_reactor/plastic_board_ptfe', + 'gtceu:chemical_reactor/plastic_circuit_board_iron3', + 'gtceu:chemical_reactor/plastic_circuit_board_persulfate', + 'gtceu:large_chemical_reactor/plastic_circuit_board_iron3', + 'gtceu:large_chemical_reactor/plastic_circuit_board_persulfate' + ]; + toRemove.forEach(id => event.remove({ id: id })); + + event.recipes.gtceu.arc_furnace('tfg:mo_activated_sic_substrate') + .itemInputs(Item.of('tfg:silicon_carbide_plate'), Item.of('gtceu:molybdenum_foil', 4)) + .inputFluids(Fluid.of('gtceu:oxygen', 1000)) + .itemOutputs(Item.of('tfg:mo_activated_sic_substrate')) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:ceramic_circuit_board') + .itemInputs(Item.of('tfg:mo_activated_sic_substrate'), Item.of('gtceu:nickel_dust', 1)) + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 250)) + .itemOutputs(Item.of('gtceu:plastic_circuit_board', 4)) + .duration(20 * 25) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_bath('tfg:ceramic_circuit_board_t3') + .itemInputs(Item.of('tfg:chromium_bonded_beo_pcb'), Item.of('gtceu:nickel_dust', 1)) + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 250)) + .itemOutputs(Item.of('gtceu:plastic_circuit_board', 12)) + .duration(20 * 25) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:ceramic_printed_circuit_board_iron_iii_chloride') + .itemInputs(Item.of('gtceu:plastic_circuit_board'), Item.of('gtceu:annealed_copper_foil', 6)) + .inputFluids(Fluid.of('gtceu:iron_iii_chloride', 500)) + .itemOutputs(Item.of('gtceu:plastic_printed_circuit_board')) + .duration(20 * 30) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor('tfg:ceramic_printed_circuit_board_redstone_tri_p_toluenesulfonate') + .itemInputs(Item.of('gtceu:plastic_circuit_board'), Item.of('gtceu:annealed_copper_foil', 6)) + .inputFluids(Fluid.of('tfg:redstone_tri_p_toluenesulfonate', 250)) + .itemOutputs(Item.of('gtceu:plastic_printed_circuit_board')) + .duration(20 * 30) + .EUt(GTValues.VA[GTValues.LV]) + + // Alumina Copper Bonded Circuit Boards + + event.recipes.gtceu.arc_furnace('tfg:copper_bonded_al2o3_pcb') + .itemInputs(Item.of('tfg:alumina_plate'), Item.of('gtceu:cupronickel_foil', 4)) + .inputFluids(Fluid.of('gtceu:oxygen', 1000)) + .itemOutputs(Item.of('tfg:copper_bonded_al2o3_pcb')) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:ceramic_circuit_board_t2') + .itemInputs(Item.of('tfg:copper_bonded_al2o3_pcb'), Item.of('gtceu:nickel_dust', 1)) + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 250)) + .itemOutputs(Item.of('gtceu:plastic_circuit_board', 8)) + .duration(20 * 25) + .EUt(GTValues.VA[GTValues.LV]) + + // Lenses + + event.recipes.gtceu.alloy_smelter('tfg:optical_borosilicate_blank') + .itemInputs(Item.of('gtceu:borosilicate_glass_dust', 1)) + .notConsumable(Item.of('gtceu:cylinder_casting_mold')) + .itemOutputs(Item.of('tfg:optical_borosilicate_blank', 1)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.MV]) + + function lensPolishing(event, fluid, colour, temp) { + event.recipes.gtceu.high_temperature_precision_fabricator(`tfg:lens_${fluid}_${colour}`) + .itemInputs('tfg:worked_optical_borosilicate_blank', '#tfg:precision_fabricator_holder_rods') + .inputFluids(Fluid.of(`tfg:dirty_${fluid}_slurry`, 1000)) + .itemOutputs(Item.of(`#forge:lenses/${colour}`, 1)) + .addData("ebf_temp", temp) + .duration(20 * 120) + .EUt(GTValues.VA[GTValues.MV]); + } + + const LENS_POLISHING = [ + ['emerald', 'green', 1530], + ['sapphire', 'blue', 1530], + ['ruby', 'red', 1530], + ['diamond', 'light_blue', 1530], + ['apatite', 'cyan', 1810], + ['spessartine', 'orange', 1810], + ]; + + LENS_POLISHING.forEach(([fluid, colour]) => event.remove({ output: `#forge:lenses/${colour}` })); + LENS_POLISHING.forEach(([fluid, colour, temp]) => lensPolishing(event, fluid, colour, temp)); + + // Printed Circuit boards + + const FLUID_REPLACEMENTS = { + + // Minimal T4 - EV + "advanced_circuit_board_persulfate": { + input: "gtceu:sodium_persulfate", + replacement: "gtceu:iron_iii_chloride" + }, + // Best T4 - EV + "advanced_circuit_board_iron3": { + input: "gtceu:iron_iii_chloride", + replacement: "tfg:redstone_tri_p_toluenesulfonate" + }, + // Minimal T5 - IV + "extreme_circuit_board_persulfate": { + input: "gtceu:sodium_persulfate", + replacement: "tfg:redstone_tri_p_toluenesulfonate" + }, + // Best T5 - IV + "extreme_circuit_board_iron3": { + input: "gtceu:iron_iii_chloride", + replacement: undefined + }, + // Minimal T6 - LuV + "elite_circuit_board_persulfate": { + input: "gtceu:sodium_persulfate", + replacement: "tfg:redstone_tri_p_toluenesulfonate" // Redstone Etching + }, + // Best T6 - LuV + "elite_circuit_board_iron3": { + input: "gtceu:iron_iii_chloride", + replacement: undefined // New when Venus is Out + }, + // Minimal T7 - ZPM + "wetware_circuit_board_persulfate": { + input: "gtceu:sodium_persulfate", + replacement: "tfg:redstone_tri_p_toluenesulfonate" // New when Venus is Out + }, + // Best T7 - ZPM + "wetware_circuit_board_iron3": { + input: "gtceu:iron_iii_chloride", + replacement: undefined // New when ZPM Planet is Out + }, + } + + const REACTOR_PREFIXES = [ + "gtceu:chemical_reactor", + "gtceu:large_chemical_reactor" + ] + + Object.keys(FLUID_REPLACEMENTS).forEach(recipeName => { + const { input, replacement } = FLUID_REPLACEMENTS[recipeName] + + REACTOR_PREFIXES.forEach(prefix => { + const recipeId = `${prefix}/${recipeName}` + + if (replacement) { + event.replaceInput({ id: recipeId }, Fluid.of(input), Fluid.of(replacement)) + } else { + event.remove({ id: recipeId }) + } + }) + }) +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/machines/recipes.circuits.js b/kubejs/server_scripts/tfg/machines/recipes.circuits.js new file mode 100644 index 000000000..70a3f9d6a --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.circuits.js @@ -0,0 +1,281 @@ +"use strict"; + +const TIN_REPLACEMENT = "tin_replacement" +const SOLDER_REPLACEMENT = "solder_replacement" + +/** @global */ +global.SOLDER_TIERS = /** @type {const} */ { + "mv": { + "tin_replacement": "gtceu:soldering_alloy", + "solder_replacement": "tfg:woods_metal" + }, + "hv": { + "tin_replacement": "gtceu:soldering_alloy", + "solder_replacement": "tfg:woods_metal" + }, + "ev": { + "tin_replacement": "tfg:woods_metal", + "solder_replacement": "tfg:bi_pb_sn_cd_in_tl" + }, + "iv": { + "tin_replacement": "tfg:woods_metal", + "solder_replacement": "tfg:bi_pb_sn_cd_in_tl" + }, + "luv": { + "tin_replacement": "tfg:woods_metal", + "solder_replacement": "tfg:bi_pb_sn_cd_in_tl" + }, + "zpm": { + "tin_replacement": "tfg:woods_metal", + "solder_replacement": "tfg:bi_pb_sn_cd_in_tl" + }, + "uv": { + "tin_replacement": "tfg:woods_metal", + "solder_replacement": "tfg:bi_pb_sn_cd_in_tl" + } +} + +function registerTFGCircuitRecipes(event) { + + //#region Microprocessor mainframe requires nano chips + + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd_soldering_alloy'}) + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv'}) + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_soldering_alloy'}) + event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd'}) + + event.recipes.gtceu.circuit_assembler('tfg:mainframe_iv') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of(global.SOLDER_TIERS["hv"][TIN_REPLACEMENT], 576)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 40) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.recipes.gtceu.circuit_assembler('tfg:mainframe_iv_soldering_alloy') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of(global.SOLDER_TIERS["hv"][SOLDER_REPLACEMENT], 288)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 40) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.recipes.gtceu.circuit_assembler('tfg:mainframe_iv_asmd') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of(global.SOLDER_TIERS["hv"][TIN_REPLACEMENT], 576)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + event.recipes.gtceu.circuit_assembler('tfg:mainframe_iv_asmd_soldering_alloy') + .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') + .inputFluids(Fluid.of(global.SOLDER_TIERS["hv"][SOLDER_REPLACEMENT], 288)) + .itemOutputs('gtceu:micro_processor_mainframe') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.HV]) + .cleanroom(CleanroomType.CLEANROOM) + + //#endregion + + //#region Replace solders + + // Circuit assembler recipes + + const CIRCUIT_ASSEMBLER_RECIPE_TIERS = { + "gtceu:circuit_assembler/integrated_circuit_lv": "mv", + "gtceu:circuit_assembler/integrated_circuit_mv": "mv", + "gtceu:circuit_assembler/integrated_circuit_hv": "mv", + + "gtceu:circuit_assembler/nand_chip_ulv_good_board": "hv", + "gtceu:circuit_assembler/nand_chip_ulv_plastic_board": "hv", + "gtceu:circuit_assembler/microprocessor_lv": "hv", + "gtceu:circuit_assembler/microprocessor_lv_soc": "hv", + "gtceu:circuit_assembler/processor_mv": "hv", + "gtceu:circuit_assembler/processor_mv_soc": "hv", + "gtceu:circuit_assembler/processor_assembly_hv": "hv", + "gtceu:circuit_assembler/workstation_ev": "hv", + // Microprocessor mainframes handled above + "gtceu:circuit_assembler/data_stick": "hv", + + "gtceu:circuit_assembler/nano_processor_hv": "ev", + "gtceu:circuit_assembler/nano_processor_hv_asmd": "ev", + "gtceu:circuit_assembler/nano_processor_hv_soc": "ev", + "gtceu:circuit_assembler/nano_processor_assembly_ev": "ev", + "gtceu:circuit_assembler/nano_processor_assembly_ev_asmd": "ev", + "gtceu:circuit_assembler/nano_computer_iv": "ev", + "gtceu:circuit_assembler/nano_computer_iv_asmd": "ev", + "gtceu:circuit_assembler/nano_mainframe_luv": "ev", + "gtceu:circuit_assembler/nano_mainframe_luv_asmd": "ev", + "gtceu:circuit_assembler/lapotronic_energy_orb": "ev", + "gtceu:circuit_assembler/data_orb": "ev", + + "gtceu:circuit_assembler/quantum_processor_ev": "iv", + "gtceu:circuit_assembler/quantum_processor_ev_asmd": "iv", + "gtceu:circuit_assembler/quantum_processor_ev_soc": "iv", + "gtceu:circuit_assembler/quantum_assembly_iv": "iv", + "gtceu:circuit_assembler/quantum_assembly_iv_asmd": "iv", + "gtceu:circuit_assembler/quantum_computer_luv": "iv", + "gtceu:circuit_assembler/quantum_computer_luv_asmd": "iv", + "gtceu:circuit_assembler/quantum_mainframe_zpm": "iv", + "gtceu:circuit_assembler/quantum_mainframe_zpm_asmd": "iv", + + "gtceu:circuit_assembler/crystal_processor_iv": "luv", + "gtceu:circuit_assembler/crystal_processor_iv_soc": "luv", + "gtceu:circuit_assembler/crystal_assembly_luv": "luv", + "gtceu:circuit_assembler/crystal_computer_zpm": "luv", + + "gtceu:circuit_assembler/wetware_processor_luv": "zpm", + "gtceu:circuit_assembler/wetware_processor_luv_soc": "zpm", + "gtceu:circuit_assembler/wetware_processor_assembly_zpm": "zpm", + "gtceu:circuit_assembler/wetware_processor_luv_soc": "zpm", + "gtceu:circuit_assembler/data_module": "zpm" + } + + Object.keys(CIRCUIT_ASSEMBLER_RECIPE_TIERS).forEach(recipe => { + if (global.SOLDER_TIERS[CIRCUIT_ASSEMBLER_RECIPE_TIERS[recipe]][TIN_REPLACEMENT]) { + event.replaceInput({ id: recipe }, Fluid.of("gtceu:tin"), Fluid.of(global.SOLDER_TIERS[CIRCUIT_ASSEMBLER_RECIPE_TIERS[recipe]][TIN_REPLACEMENT])) + } else { + event.remove({ id: recipe }) + } + + if (global.SOLDER_TIERS[CIRCUIT_ASSEMBLER_RECIPE_TIERS[recipe]][SOLDER_REPLACEMENT]) { + event.replaceInput({ id: `${recipe}_soldering_alloy` }, Fluid.of("gtceu:soldering_alloy"), Fluid.of(global.SOLDER_TIERS[CIRCUIT_ASSEMBLER_RECIPE_TIERS[recipe]][SOLDER_REPLACEMENT])) + } else { + event.remove({ id: `${recipe}_soldering_alloy` }) + } + }) + + // Assembly line recipes + + const ASSEMBLY_LINE_RECIPE_TIERS = { + "gtceu:assembly_line/crystal_mainframe_uv": "luv", + "gtceu:assembly_line/lapotronic_energy_orb_cluster": "luv", + "gtceu:assembly_line/electric_motor_luv": "luv", + "gtceu:assembly_line/electric_pump_luv": "luv", + "gtceu:assembly_line/conveyor_module_luv": "luv", + "gtceu:assembly_line/electric_piston_luv": "luv", + "gtceu:assembly_line/robot_arm_luv": "luv", + "gtceu:assembly_line/field_generator_luv": "luv", + "gtceu:assembly_line/emitter_luv": "luv", + "gtceu:assembly_line/sensor_luv": "luv", + "gtceu:assembly_line/energy_hatch_luv": "luv", + "gtceu:assembly_line/dynamo_hatch_luv": "luv", + "gtceu:assembly_line/me_pattern_buffer": "luv", + "gtceu:assembly_line/advanced_data_access_hatch": "luv", + "gtceu:assembly_line/fusion_reactor_mk1": "luv", + + "gtceu:assembly_line/wetware_super_computer_uv": "zpm", + "gtceu:assembly_line/energy_module": "zpm", + "gtceu:assembly_line/electric_motor_zpm": "zpm", + "gtceu:assembly_line/electric_pump_zpm": "zpm", + "gtceu:assembly_line/conveyor_module_zpm": "zpm", + "gtceu:assembly_line/electric_piston_zpm": "zpm", + "gtceu:assembly_line/robot_arm_zpm": "zpm", + "gtceu:assembly_line/field_generator_zpm": "zpm", + "gtceu:assembly_line/emitter_zpm": "zpm", + "gtceu:assembly_line/sensor_zpm": "zpm", + "gtceu:assembly_line/energy_hatch_zpm": "zpm", + "gtceu:assembly_line/dynamo_hatch_zpm": "zpm", + "gtceu:assembly_line/object_holder": "zpm", + "gtceu:assembly_line/data_bank": "zpm", + "gtceu:assembly_line/high_performance_computing_array": "zpm", + "gtceu:assembly_line/network_switch": "zpm", + "gtceu:assembly_line/research_station": "zpm", + "gtceu:assembly_line/fusion_reactor_mk2": "zpm", + + "gtceu:assembly_line/wetware_mainframe_uhv": "uv", + "gtceu:assembly_line/energy_cluster": "uv", + "gtceu:assembly_line/ultimate_battery": "uv", + "gtceu:assembly_line/electric_motor_uv": "uv", + "gtceu:assembly_line/electric_pump_uv": "uv", + "gtceu:assembly_line/conveyor_module_uv": "uv", + "gtceu:assembly_line/electric_piston_uv": "uv", + "gtceu:assembly_line/robot_arm_uv": "uv", + "gtceu:assembly_line/field_generator_uv": "uv", + "gtceu:assembly_line/emitter_uv": "uv", + "gtceu:assembly_line/sensor_uv": "uv", + "gtceu:assembly_line/energy_hatch_uv": "uv", + "gtceu:assembly_line/energy_hatch_uhv": "uv", + "gtceu:assembly_line/dynamo_hatch_uv": "uv", + "gtceu:assembly_line/dynamo_hatch_uhv": "uv", + "gtceu:assembly_line/fusion_reactor_mk3": "uv" + } + + Object.keys(ASSEMBLY_LINE_RECIPE_TIERS).forEach(recipe => { + if (global.SOLDER_TIERS[ASSEMBLY_LINE_RECIPE_TIERS[recipe]][SOLDER_REPLACEMENT]) { + event.replaceInput({ id: recipe }, Fluid.of("gtceu:soldering_alloy"), Fluid.of(global.SOLDER_TIERS[ASSEMBLY_LINE_RECIPE_TIERS[recipe]][SOLDER_REPLACEMENT])) + } else if (global.SOLDER_TIERS[ASSEMBLY_LINE_RECIPE_TIERS[recipe]][TIN_REPLACEMENT]) { + // Use tin replacement instead if the solder replacement is undefined + event.replaceInput({ id: recipe }, Fluid.of("gtceu:soldering_alloy"), Fluid.of(global.SOLDER_TIERS[ASSEMBLY_LINE_RECIPE_TIERS[recipe]][TIN_REPLACEMENT])) + } else { + event.remove({ id: recipe }) + } + }) + + //#endregion + + //#region Solder recipes + + // Woods metal + + event.remove({ id: 'gtceu:extractor/extract_woods_metal_dust' }) + event.remove({ id: 'gtceu:extractor/extract_woods_metal_ingot' }) + event.remove({ id: 'gtceu:extractor/extract_woods_metal_nugget' }) + event.remove({ id: 'gtceu:extractor/extract_woods_metal_block' }) + + event.recipes.gtceu.mixer('tfg:woods_metal') + .itemInputs('4x #forge:dusts/bismuth', '2x #forge:dusts/lead', '1x #forge:dusts/tin', '1x #forge:dusts/cadmium') + .itemOutputs('8x #forge:dusts/woods_metal') + .duration(20 * 10) + .circuit(3) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.pyrolyse_oven('tfg:liquid_woods_metal') + .itemInputs('8x #forge:dusts/woods_metal') + .outputFluids(Fluid.of('tfg:woods_metal', 1152)) + .duration(20 * 96) + .circuit(1) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.pyrolyse_oven('tfg:liquid_woods_metal_boosted') + .itemInputs('8x #forge:dusts/woods_metal') + .inputFluids(Fluid.of('gtceu:nitrogen', 1000)) + .outputFluids(Fluid.of('tfg:woods_metal', 1152)) + .duration(20 * 48) + .circuit(2) + .EUt(GTValues.VA[GTValues.MV]) + + // BiPbSnCdInTl + + event.recipes.gtceu.large_chemical_reactor('tfg:lorandite_to_thallium_sulfate') + .itemInputs('8x #forge:dusts/lorandite') + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 2000)) + .itemOutputs('7x #forge:dusts/thallium_sulfate', '5x #forge:dusts/arsenic_trioxide', '4x #forge:dusts/sulfur') + .outputFluids(Fluid.of('minecraft:water', 1000), Fluid.of('gtceu:hydrogen_sulfide', 1000)) + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('tfg:thallium_sulfate_to_zinc_sulfate') + .itemInputs('7x #forge:dusts/thallium_sulfate', '1x #forge:dusts/zinc') + .itemOutputs('2x #forge:dusts/thallium', '6x #forge:dusts/zinc_sulfate') + .duration(20 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.alloy_blast_smelter('tfg:bi_pb_sn_cd_in_tl') + .itemInputs('8x #forge:dusts/bismuth', '4x #forge:dusts/lead', '2x #forge:dusts/tin', '3x #forge:dusts/indium', '2x #forge:dusts/cadmium', '1x #forge:dusts/thallium') + .outputFluids(Fluid.of('tfg:bi_pb_sn_cd_in_tl', 2880)) + .duration(20 * 480) + .blastFurnaceTemp(3700) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.alloy_blast_smelter('tfg:bi_pb_sn_cd_in_tl_boosted') + .itemInputs('8x #forge:dusts/bismuth', '4x #forge:dusts/lead', '2x #forge:dusts/tin', '3x #forge:dusts/indium', '2x #forge:dusts/cadmium', '1x #forge:dusts/thallium') + .inputFluids(Fluid.of('gtceu:helium', 2000)) + .outputFluids(Fluid.of('tfg:bi_pb_sn_cd_in_tl', 2880)) + .duration(20 * 321.6) + .blastFurnaceTemp(3700) + .EUt(GTValues.VA[GTValues.EV]) + + //#endregion +} diff --git a/kubejs/server_scripts/tfg/machines/recipes.coils.js b/kubejs/server_scripts/tfg/machines/recipes.coils.js index 72567d715..3dff18619 100644 --- a/kubejs/server_scripts/tfg/machines/recipes.coils.js +++ b/kubejs/server_scripts/tfg/machines/recipes.coils.js @@ -75,11 +75,77 @@ function registerTFGCoilRecipes(event) { // #endregion + // #region Kanthal Coil + + event.remove({ id: 'gtceu:assembler/coil_kanthal' }) + event.recipes.gtceu.assembler('tfg:coil_kanthal') + .itemInputs('8x #forge:double_wires/kanthal', '8x #forge:foils/rene_41', '1x #forge:ingots/silicon_carbide') + .inputFluids('gtceu:cobalt 144') + .itemOutputs('gtceu:kanthal_coil_block') + .duration(20 * 15) + .EUt(GTValues.VA[GTValues.MV]) + .addMaterialInfo(true, true) + + // #endregion + + // #region Nichrome Coil + + event.recipes.gtceu.gas_pressurizer('tfg:blue_alloy_desh_foil') + .itemInputs('2x #forge:foils/desh', '2x #forge:foils/blue_alloy', 'tfc:powder/flux') + .inputFluids('gtceu:regolith_vapor 1000') + .itemOutputs('tfg:blue_alloy_desh_foil') + .duration(10 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + TFGHelpers.registerMaterialInfo('tfg:blue_alloy_desh_foil', [GTMaterials.BlueAlloy, 0.5, GTMaterials.get('gtceu:desh'), 0.25]) + + event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_dynamite') + .itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', '2x gtceu:dynamite') + .itemOutputs('tfg:chorus_ceramic_insulation') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_powderbarrel') + .itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', '8x gtceu:powderbarrel') + .itemOutputs('tfg:chorus_ceramic_insulation') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_tnt') + .itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', '4x minecraft:tnt') + .itemOutputs('tfg:chorus_ceramic_insulation') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.implosion_compressor('tfg:chorus_ceramic_insulation_itnt') + .itemInputs('ae2:sky_dust', '#forge:dusts/perlite', '#forge:dusts/kaolinite', 'minecraft:popped_chorus_fruit', 'gtceu:industrial_tnt') + .itemOutputs('tfg:chorus_ceramic_insulation') + .chancedOutput('#forge:dusts/dark_ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + + event.smelting('tfg:fired_chorus_ceramic_insulation', 'tfg:chorus_ceramic_insulation') + .id('tfg:smelting/chorus_ceramic_insulation') + + event.remove({ id: 'gtceu:assembler/coil_nichrome' }) + event.recipes.gtceu.assembler('tfg:coil_nichrome') + .itemInputs('8x #forge:double_wires/nichrome', '8x tfg:blue_alloy_desh_foil', '4x tfg:fired_chorus_ceramic_insulation') + .inputFluids(Fluid.of('gtceu:magnalium', 144 * 4)) + .itemOutputs('gtceu:nichrome_coil_block') + .duration(20 * 15) + .EUt(GTValues.VA[GTValues.HV]) + .addMaterialInfo(true, true) + + // #endregion + // #region RTM Coil event.remove({ id : 'gtceu:assembler/coil_rtm_alloy' }) event.recipes.gtceu.assembler('tfg:coil_rtm_alloy') - .itemInputs('8x #forge:double_wires/rtm_alloy', '8x #forge:foils/vanadium_steel', '4x #forge:insulation_t2/sheet') + .itemInputs('8x #forge:double_wires/rtm_alloy', '8x #forge:foils/ostrum', '4x #forge:insulation_t2/sheet') .inputFluids('tfg:nichromium_iodomethylate 244') .itemOutputs('gtceu:rtm_alloy_coil_block') .duration(20 * 25) @@ -98,7 +164,9 @@ function registerTFGCoilRecipes(event) { event.remove({ id : 'gtceu:assembler/coil_hssg' }) event.recipes.gtceu.assembler('tfg:coil_hssg') - .itemInputs('8x #forge:double_wires/hssg', '8x #forge:foils/tungsten_carbide', '2x #forge:insulation_t3/sheet') + // TODO: Replace the tungsten carbide foil with zirconium diboride + .itemInputs('8x #forge:double_wires/hssg', '8x #forge:foils/tungsten_carbide', '#forge:insulation_t3/sheet') + // TODO: Replace tungsten liquid with something else from venus .inputFluids('gtceu:tungsten 144') .itemOutputs('gtceu:hssg_coil_block') .duration(20 * 30) diff --git a/kubejs/server_scripts/tfg/machines/recipes.components.js b/kubejs/server_scripts/tfg/machines/recipes.components.js index 1d5a0aa27..17cdb79d8 100644 --- a/kubejs/server_scripts/tfg/machines/recipes.components.js +++ b/kubejs/server_scripts/tfg/machines/recipes.components.js @@ -171,44 +171,6 @@ function registerTFGElectronicComponentsRecipes(event) { .EUt(GTValues.VA[GTValues.EV]) .cleanroom(CleanroomType.CLEANROOM) - // Change components of IV mainframe to nano chip - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd_soldering_alloy'}) - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv'}) - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_soldering_alloy'}) - event.remove({ id: 'gtceu:circuit_assembler/mainframe_iv_asmd'}) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:tin', 576)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 40) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_soldering_alloy') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '8x #gtceu:inductors', '16x #gtceu:capacitors', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 40) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_asmd') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:tin', 576)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 20) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - - event.recipes.gtceu.circuit_assembler('tfg:circuit_assembler/mainframe_iv_asmd_soldering_alloy') - .itemInputs('2x gtceu:aluminium_frame', '2x gtceu:micro_processor_computer', '2x gtceu:advanced_smd_inductor', '4x gtceu:advanced_smd_capacitor', 'gtceu:nano_cpu_chip', '16x gtceu:annealed_copper_single_wire') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 288)) - .itemOutputs('gtceu:micro_processor_mainframe') - .duration(20 * 20) - .EUt(GTValues.VA[GTValues.HV]) - .cleanroom(CleanroomType.CLEANROOM) - // Quantum Eye event.replaceInput({ id: 'gtceu:assembler/field_generator_ev' }, 'minecraft:nether_star', 'gtceu:quantum_eye') diff --git a/kubejs/server_scripts/tfg/machines/recipes.etching.js b/kubejs/server_scripts/tfg/machines/recipes.etching.js new file mode 100644 index 000000000..f888817de --- /dev/null +++ b/kubejs/server_scripts/tfg/machines/recipes.etching.js @@ -0,0 +1,65 @@ +// priority: 0 +"use strict"; + +function registerTFGEtchingRecipes(event) { + + //#region Redstone Etching Fluids + event.recipes.gtceu.chemical_bath('tfg:redstone_nitrate') + .itemInputs(Item.of('minecraft:redstone', 1)) + .inputFluids(Fluid.of('gtceu:nitric_acid', 3000)) + .outputFluids(Fluid.of('gtceu:hydrogen', 3000)) + .itemOutputs(Item.of('tfg:redstone_nitrate_dust', 1)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('tfg:redstone_chloride') + .itemInputs(Item.of('tfg:redstone_nitrate_dust', 1)) + .itemInputs(Item.of('gtceu:salt_dust', 3)) + .itemOutputs(Item.of('tfg:sodium_nitrate_dust', 3)) + .outputFluids(Fluid.of('tfg:redstone_chloride', 1000)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor('tfg:redstone_tri_p_toluenesulfonate') + .inputFluids(Fluid.of('tfg:redstone_chloride', 1000)) + .inputFluids(Fluid.of('tfg:p_toluenesulfonic_acid', 3000)) + .outputFluids(Fluid.of('gtceu:chlorine', 3000)) + .outputFluids(Fluid.of('tfg:redstone_tri_p_toluenesulfonate', 1000)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.large_chemical_reactor('tfg:p_toluenesulfonic_acid') + .inputFluids(Fluid.of('gtceu:toluene', 1000)) + .inputFluids(Fluid.of('tfg:thionyl_chloride', 1000)) + .inputFluids(Fluid.of('gtceu:sulfuric_acid', 1000)) + .outputFluids(Fluid.of('tfg:p_toluenesulfonic_acid', 1000)) + .outputFluids(Fluid.of('gtceu:sulfur_dioxide', 1000)) + .outputFluids(Fluid.of('gtceu:hydrochloric_acid', 2000)) + .duration(20 * 5) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:thionyl_chloride') + .inputFluids(Fluid.of('gtceu:sulfur_trioxide', 1000)) + .inputFluids(Fluid.of('tfg:sulfur_dichloride', 1000)) + .outputFluids(Fluid.of('gtceu:sulfur_dioxide', 1000)) + .outputFluids(Fluid.of('tfg:thionyl_chloride', 1000)) + .duration(20 * 3) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:sulfur_dichloride') + .itemInputs(Item.of('gtceu:sulfur_dust', 1)) + .inputFluids(Fluid.of('gtceu:chlorine', 2000)) + .outputFluids(Fluid.of('tfg:sulfur_dichloride', 1000)) + .duration(20 * 3) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_reactor('tfg:sodium_nitrate_to_nitric_acid') + .itemInputs(Item.of('tfg:sodium_nitrate_dust', 1)) + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000)) + .outputFluids(Fluid.of('gtceu:nitric_acid', 1000)) + .itemOutputs(Item.of('gtceu:salt_dust', 1)) + .duration(30) + .EUt(GTValues.VA[GTValues.HV]) + + //#endregion +} diff --git a/kubejs/server_scripts/tfg/machines/recipes.multiblocks.js b/kubejs/server_scripts/tfg/machines/recipes.multiblocks.js index b5a1d9298..ca0fb5d3b 100644 --- a/kubejs/server_scripts/tfg/machines/recipes.multiblocks.js +++ b/kubejs/server_scripts/tfg/machines/recipes.multiblocks.js @@ -259,6 +259,19 @@ function registerTFGMultiblockRecipes(event) { F: 'gtceu:mv_electric_piston' }).addMaterialInfo().id('gtceu:shaped/coal_liquefaction_tower') + event.recipes.gtceu.shaped('tfg:high_temp_precision_fabricator', [ + 'BEB', + 'CAC', + 'DFD' + ], { + A: 'gtceu:mv_machine_hull', + B: 'gtceu:mv_robot_arm', + C: '#gtceu:circuits/mv', + D: '#forge:double_wires/cupronickel', + E: '#forge:single_cables/copper', + F: 'tfg:casings/sterling_silver_casing' + }).addMaterialInfo().id('tfg:shaped/high_temp_precision_fabricator') + event.remove({output: 'gtceu:active_transformer'}) event.recipes.gtceu.assembler('tfg:active_power_transformer') diff --git a/kubejs/server_scripts/tfg/mars/recipes.ostrum.js b/kubejs/server_scripts/tfg/mars/recipes.ostrum.js index bf4ff9dbc..4a1b8c664 100644 --- a/kubejs/server_scripts/tfg/mars/recipes.ostrum.js +++ b/kubejs/server_scripts/tfg/mars/recipes.ostrum.js @@ -200,6 +200,17 @@ function registerTFGMarsOstrumRecipes(event) { .duration(20 * 240) .EUt(GTValues.VA[GTValues.LuV]) + event.recipes.gtceu.ostrum_linear_accelerator('tfg:lorandite_ola') + .perTick(true) + .inputFluids(Fluid.of('gtceu:residual_radioactive_concoction', 1)) + .perTick(false) + .inputFluids(Fluid.of('gtceu:dense_ostrum_vapor', 1000), Fluid.of('gtceu:martian_sludge', 16000)) + .itemOutputs(Item.of('tfg:dusty_raw_lorandite', 16)) + .input($HeatRecipeCapability.CAP, new $HeatIngredient(500, 500)) + .dimension('ad_astra:mars') + .duration(20 * 300) + .EUt(GTValues.VA[GTValues.IV]) + event.recipes.gtceu.ostrum_linear_accelerator('tfg:tbu_232_rod_ola') .perTick(true) .inputFluids(Fluid.of('gtceu:residual_radioactive_concoction', 1)) diff --git a/kubejs/server_scripts/tfg/mv_rework/material.recipes.js b/kubejs/server_scripts/tfg/mv_rework/material.recipes.js new file mode 100644 index 000000000..c91f2e8f1 --- /dev/null +++ b/kubejs/server_scripts/tfg/mv_rework/material.recipes.js @@ -0,0 +1,151 @@ +function registerTFGMVMaterialRecipes(event) { + + // SiC + + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rough_silicon_carbide' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_rough_silicon_carbide_gas' }) + event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_silicon_carbide_to_nugget' }) + + event.recipes.gtceu.electric_blast_furnace('tfg:rough_sic_gem') + .itemInputs(Item.of('gtceu:quartzite_gem', 9), Item.of('gtceu:graphite_dust', 27)) + .itemOutputs(Item.of('tfg:hot_rough_silicon_carbide_ingot', 1)) + .outputFluids(Fluid.of('gtceu:carbon_monoxide', 18000)) + .blastFurnaceTemp(1760) + .duration(20 * 180) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:flawless_rough_sic_gem') + .itemInputs(Item.of('gtceu:flawless_quartzite_gem', 9), Item.of('gtceu:graphite_dust', 27)) + .itemOutputs(Item.of('tfg:hot_rough_silicon_carbide_ingot', 5)) + .outputFluids(Fluid.of('gtceu:carbon_monoxide', 18000)) + .blastFurnaceTemp(1760) + .duration(20 * 140) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:exquisite_rough_sic_gem') + .itemInputs(Item.of('gtceu:exquisite_quartzite_gem', 9), Item.of('gtceu:graphite_dust', 27)) + .itemOutputs(Item.of('tfg:hot_rough_silicon_carbide_ingot', 9)) + .outputFluids(Fluid.of('gtceu:carbon_monoxide', 18000)) + .blastFurnaceTemp(1760) + .duration(20 * 100) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:silicon_carbide') + .itemInputs(Item.of('tfg:rough_silicon_carbide_dust',1)) + .inputFluids(Fluid.of('gtceu:hydrochloric_acid', 1000)) + .itemOutputs(Item.of('tfg:silicon_carbide_ingot', 1)) + .duration(20*16) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:silicon_carbide_cool_down') + .itemInputs(Item.of('#forge:hot_ingots/rough_silicon_carbide', 1)) + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs(Item.of('#forge:ingots/rough_silicon_carbide', 1)) + .duration(20*36) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:silicon_carbide_cool_down_distilled_water') + .itemInputs(Item.of('#forge:hot_ingots/rough_silicon_carbide', 1)) + .inputFluids(Fluid.of('gtceu:distilled_water', 100)) + .itemOutputs(Item.of('#forge:ingots/rough_silicon_carbide', 1)) + .duration(20*21) + .EUt(GTValues.VA[GTValues.MV]) + + // Rene 41 + + event.recipes.gtceu.mixer('tfg:rene_41_dust') + .itemInputs( + Item.of('gtceu:nickel_dust', 5), + Item.of('gtceu:chromium_dust', 3), + Item.of('gtceu:cobalt_dust', 2), + Item.of('gtceu:molybdenum_dust', 1), + Item.of('gtceu:aluminium_dust', 1), + Item.of('gtceu:boron_dust', 1)) + .inputFluids(Fluid.of('gtceu:carbon_monoxide', 1000)) + .itemOutputs(Item.of('tfg:rene_41_dust', 7)) + .outputFluids(Fluid.of('gtceu:oxygen', 1000)) + .duration(20*46) + .EUt(GTValues.VA[GTValues.MV]) + .circuit(4) + + event.recipes.gtceu.chemical_bath('tfg:rene_41_cool_down') + .itemInputs(Item.of('#forge:hot_ingots/rene_41', 1)) + .inputFluids(Fluid.of('minecraft:water', 100)) + .itemOutputs(Item.of('#forge:ingots/rene_41', 1)) + .duration(20*23) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:rene_41_cool_down_distilled_water') + .itemInputs(Item.of('#forge:hot_ingots/rene_41', 1)) + .inputFluids(Fluid.of('gtceu:distilled_water', 100)) + .itemOutputs(Item.of('#forge:ingots/rene_41', 1)) + .duration(20*14) + .EUt(GTValues.VA[GTValues.MV]) + + //#region Diamond Tipped Tools custom recipes + + event.recipes.gtceu.high_temperature_precision_fabricator('tfg:diamond_tipped_mo_50_re') + .itemInputs('1x tfg:mo_50_re_ingot', 'gtceu:diamond_dust') + .perTick(true) + .inputFluids(Fluid.of('gtceu:methane', 2.5), Fluid.of('gtceu:hydrogen', 10)) + .perTick(false) + .itemOutputs('tfg:diamond_tipped_mo_50_re_ingot') + .circuit(1) + .duration(5 * 20) + .addData("ebf_temp", 1784) + .EUt(GTValues.VA[GTValues.MV]) + + const diamondTippedToolHeads = [ + {id: "wrench_tip", amount:2}, + {id: "knife_head", amount:1}, + {id: "screwdriver_tip", amount:1}, + {id: "buzz_saw_blade", amount:2}, + {id: "hoe_head", amount:1}, + {id: "scythe_head", amount:1}, + {id: "hammer_head", amount:1}, + {id: "wire_cutter_head", amount:2}, + {id: "file_head", amount:1}, + {id: "sword_head", amount:2}, + {id: "butchery_knife_head", amount:1} + ] + + diamondTippedToolHeads.forEach((element, index) => { + event.recipes.gtceu.laser_engraver(`tfg:diamond_tipped_mo_50_re_${element.id}_laser_engraving`) + .itemInputs(`${element.amount}x #forge:ingots/diamond_tipped_mo_50_re`) + .itemOutputs(`tfg:diamond_tipped_mo_50_re_${element.id}`) + .notConsumable('gtceu:glass_lens') + .duration(15 * 20 * element.amount) + .circuit(index) + .EUt(GTValues.VA[GTValues.MV]) + }); + + event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_diamond_tipped_mo_50_re_to_nugget'}) + + + + //#endregion + + //#region Modify Electronic Component to require Silicon Rubber + + event.replaceInput({ id: 'gtceu:assembler/transistor' }, Fluid.of('gtceu:polyethylene'), Fluid.of('gtceu:silicone_rubber')) + event.replaceInput({ id: 'gtceu:assembler/capacitor' }, Item.of('gtceu:polyethylene_foil'), Item.of('gtceu:silicone_rubber_foil')) + + // SiC SiC rotor + + const transitional = 'tfg:silicon_carbide_silicon_carbide_turbine_blade' + event.recipes.create.sequenced_assembly([ + Item.of('gtceu:turbine_rotor', '{GT.PartStats:{Material:"tfg:silicon_carbide_silicon_carbide"}}'), + ], 'tfg:silicon_carbide_ingot', [ + event.recipes.create.deploying(transitional, [transitional, 'tfg:silicon_carbide_plate']), + event.recipes.greate.pressing(transitional, transitional), + event.recipes.create.cutting(transitional, transitional), + event.recipes.create.filling(transitional, [Fluid.of('tfg:silicon_carbide', 144), transitional]), + event.recipes.vintageimprovements.vacuumizing(transitional, [transitional, Item.of('tfg:silicon_carbide_dust', 1)]).processingTime(50), + event.recipes.create.deploying(transitional, [transitional, '#forge:tools/wire_cutters']), + ]) + .transitionalItem(transitional) + .loops(10) + .id('tfg:equenced_assembly/sic_sic_turbine_rotor') + + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.alloys.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.alloys.js index a159b0a38..3763d86c2 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/recipes.alloys.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.alloys.js @@ -267,6 +267,13 @@ function registerTFGAlloyingRecipes(event) { .duration(20) .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.implosion_compressor('tfg:glowstone_block_powderbarrel') + .itemInputs('5x #forge:dusts/glowstone', '8x gtceu:powderbarrel') + .itemOutputs('1x minecraft:glowstone') + .chancedOutput('#forge:dusts/ash', 2500, 0) + .duration(20) + .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.implosion_compressor('tfg:glowstone_block_tnt') .itemInputs('5x #forge:dusts/glowstone', '4x minecraft:tnt') .itemOutputs('1x minecraft:glowstone') diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.gem_slurries.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.gem_slurries.js new file mode 100644 index 000000000..78e4bc5be --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.gem_slurries.js @@ -0,0 +1,62 @@ +// priority: 0 + +function registerTFGGemSlurriesProcessing(event) { + + const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + function slurryProcessing(event, inputId, output, amount) { + event.recipes.gtceu.coal_liquefaction_tower(`tfg:dirty_${output}_slurry_${linuxUnfucker(inputId)}`) + .itemInputs(Item.of(inputId)) + .perTick(true) + .chancedFluidInput(Fluid.of('gtceu:hydrogen', 10), 1000, 0) + .perTick(false) + .outputFluids(Fluid.of(`tfg:dirty_${output}_slurry`, amount)) + .duration(20 * 50) + .EUt(GTValues.VA[GTValues.LV]); + } + + const gemMaterials = [ + [GTMaterials.Emerald, 'emerald', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }], + [GTMaterials.Sapphire, 'sapphire', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }], + [GTMaterials.Ruby, 'ruby', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }], + [GTMaterials.Diamond, 'diamond', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }], + [GTMaterials.Apatite, 'apatite', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }], + [GTMaterials.Spessartine,'spessartine', { dust: 100, gem: 300, flawless: 600, exquisite: 1200 }], + ]; + + gemMaterials.forEach(([material, output, amounts]) => { + slurryProcessing(event, ChemicalHelper.get(TagPrefix.dust, material, 1), output, amounts.dust); + slurryProcessing(event, ChemicalHelper.get(TagPrefix.gem, material, 1), output, amounts.gem); + slurryProcessing(event, ChemicalHelper.get(TagPrefix.gemFlawless, material, 1), output, amounts.flawless); + slurryProcessing(event, ChemicalHelper.get(TagPrefix.gemExquisite, material, 1), output, amounts.exquisite); + }); + + +function slurryCentrifuging(event, name, itemOutputs, fluidOutputs, chancedOutputs) { + const recipe = event.recipes.gtceu.centrifuge(`tfg:dirty_${name}_slurry_centrifuge`) + .inputFluids(Fluid.of(`tfg:dirty_${name}_slurry`, 1000)) + .itemOutputs(itemOutputs.map(([item, amount]) => Item.of(item, amount))) + .duration(20 * 16) + .EUt(GTValues.VA[GTValues.MV]); + + if (fluidOutputs && fluidOutputs.length > 0) { + recipe.outputFluids(fluidOutputs.map(([fluid, amount]) => Fluid.of(fluid, amount))); + } + if (chancedOutputs && chancedOutputs.length > 0) { + chancedOutputs.forEach(([item, chance, tierBoost]) => { + recipe.chancedOutput(Item.of(item), chance, tierBoost); + }); + } +} + +const GEM_CENTRIFUGE = [ + ['emerald', [['gtceu:beryllium_dust', 3], ['gtceu:aluminium_dust', 2], ['gtceu:silicon_dust', 6]], [['gtceu:oxygen', 18000]], [['gtceu:ilmenite_dust', 10, 0]]], + ['sapphire', [['gtceu:aluminium_dust', 2*6]], [['gtceu:oxygen', 3000*6]], [['gtceu:ilmenite_dust', 200, 0], ['gtceu:iron_dust', 200, 0], ['gtceu:vanadium_dust', 200, 0]]], + ['ruby', [['gtceu:chromium_dust', 1*6], ['gtceu:aluminium_dust', 2*6]], [['gtceu:oxygen', 3000*6]], [['gtceu:ilmenite_dust', 200, 0], ['gtceu:iron_dust', 200, 0], ['gtceu:vanadium_dust', 200, 0]]], + ['diamond', [['gtceu:carbon_dust', 64], ['gtceu:graphite_dust', 1]], [], []], + ['apatite', [['gtceu:calcium_dust', 5*3], ['gtceu:phosphorus_dust', 3*3]], [['gtceu:chlorine', 1000*3]], []], + ['spessartine', [['gtceu:aluminium_dust', 2*1.5], ['gtceu:manganese_dust', 3*1.5], ['gtceu:silicon_dust', 3*1.5]], [['gtceu:oxygen', 12000*1.5]], []], +]; + +GEM_CENTRIFUGE.forEach(([name, itemOutputs, fluidOutputs, chancedOutputs]) => slurryCentrifuging(event, name, itemOutputs, fluidOutputs, chancedOutputs)); +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js index 2e3fe3968..fcbd32f43 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_ores.js @@ -301,7 +301,7 @@ function processCrushedOre(event, material) { // GT machines event.recipes.gtceu.ore_washer(`wash_${materialName}_crushed_ore_to_purified_ore_distilled`) .itemInputs(crushedOreItem) - .inputFluids("gtceu:distilled_water 10") + .inputFluids("gtceu:distilled_water 50") .itemOutputs(pureOreItem, 'gtceu:stone_dust') .chancedOutput(byproductItem, 3333, 0) .duration(20) @@ -309,7 +309,7 @@ function processCrushedOre(event, material) { event.recipes.gtceu.ore_washer(`wash_${materialName}_crushed_ore_to_purified_ore`) .itemInputs(crushedOreItem) - .inputFluids("minecraft:water 100") + .inputFluids("minecraft:water 500") .itemOutputs(pureOreItem, 'gtceu:stone_dust') .chancedOutput(byproductItem, 3333, 0) .circuit(1) @@ -328,7 +328,7 @@ function processCrushedOre(event, material) { event.recipes.greate.splashing( [pureOreItem, Item.of(byproductItem).withChance(0.14), 'gtceu:stone_dust'], - [crushedOreItem, Fluid.of('minecraft:water', 100)] + [crushedOreItem, Fluid.of('minecraft:water', 500)] ) .recipeTier(1) .circuitNumber(1) @@ -336,7 +336,7 @@ function processCrushedOre(event, material) { event.recipes.greate.splashing( [pureOreItem, Item.of(byproductItem).withChance(0.333), 'gtceu:stone_dust'], - [crushedOreItem, Fluid.of('gtceu:distilled_water', 10)] + [crushedOreItem, Fluid.of('gtceu:distilled_water', 50)] ) .recipeTier(1) .circuitNumber(2) @@ -458,7 +458,7 @@ function processImpureDust(event, material) { // Bulk washing event.recipes.greate.splashing( [dustItem], - [impureDustItem, Fluid.of('minecraft:water', 100)] + [impureDustItem, Fluid.of('minecraft:water', 500)] ) .recipeTier(1) .circuitNumber(1) @@ -466,7 +466,7 @@ function processImpureDust(event, material) { event.recipes.greate.splashing( [dustItem], - [impureDustItem, Fluid.of('gtceu:distilled_water', 10)] + [impureDustItem, Fluid.of('gtceu:distilled_water', 50)] ) .recipeTier(1) .circuitNumber(2) @@ -523,7 +523,7 @@ function processPureDust(event, material) { // Bulk washing event.recipes.greate.splashing( [dustItem], - [pureDustItem, Fluid.of('minecraft:water', 100)] + [pureDustItem, Fluid.of('minecraft:water', 500)] ) .recipeTier(1) .circuitNumber(1) @@ -531,7 +531,7 @@ function processPureDust(event, material) { event.recipes.greate.splashing( [dustItem], - [pureDustItem, Fluid.of('gtceu:distilled_water', 10)] + [pureDustItem, Fluid.of('gtceu:distilled_water', 50)] ) .recipeTier(1) .circuitNumber(2) diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tag_prefixes.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tag_prefixes.js index 416da0f43..e3fe4a578 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tag_prefixes.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tag_prefixes.js @@ -223,8 +223,8 @@ function processFoil(event, material) { const foilItem = ChemicalHelper.get(TagPrefix.foil, material, 4) const plateItem = ChemicalHelper.get(TagPrefix.plate, material, 1) - if (plateItem.isEmpty() || foilItem.isEmpty() || plateItem.hasTag('c:hidden_from_recipe_viewers')) - return; + if (plateItem.isEmpty() || foilItem.isEmpty() || plateItem.hasTag('c:hidden_from_recipe_viewers') || plateItem.hasTag('tfg:no_vintage_gen')) + return; event.custom({ type: "createaddition:rolling", diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tools.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tools.js index 88485e155..c257ca12e 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tools.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.material_tools.js @@ -36,15 +36,10 @@ function processToolMortar(event, toolType, material) { /** * @param {Internal.RecipesEventJS} event * @param {GTToolType} toolType - * @param {String} tagPrefixName * @param {TagPrefix} headTagPrefix - * @param {Internal.ItemStack} extruderMold - * @param {Internal.ItemStack} ceramicMold - * @param {number} circuitMeta - * Used for the laser engraver recipes for gem tools. * @param {com.gregtechceu.gtceu.api.data.chemical.material.Material_} material */ -function processGTToolHead(event, toolType, tagPrefixName, headTagPrefix, extruderMold, ceramicMold, circuitMeta, material) { +function processGTToolHead(event, toolType, headTagPrefix, material) { const toolItem = ToolHelper.get(toolType, material); const toolHeadItem = ChemicalHelper.get(headTagPrefix, material, 1); @@ -95,8 +90,6 @@ function processGTToolHead(event, toolType, tagPrefixName, headTagPrefix, extrud const materialAmount = getMaterialAmount(headTagPrefix, material); addTFCMelting(event, toolItem, material, materialAmount * 144, toolType.name); } - - processToolHead(event, headTagPrefix, tagPrefixName, extruderMold, ceramicMold, circuitMeta, material); } /** @@ -132,13 +125,15 @@ function processToolHead(event, headTagPrefix, tagPrefixName, extruderMold, cera .duration(material.getMass() * 6) .EUt(GTValues.VA[GTValues.LV]) - let input_array = []; - for (let i = 0; i < materialAmount; i++) { - input_array.push(ingotItem); + if (material.hasProperty(TFGPropertyKey.TFC_PROPERTY)) { + let input_array = []; + for (let i = 0; i < materialAmount; i++) { + input_array.push(ingotItem); + } + event.recipes.vintageimprovements.curving(toolHeadItem, input_array) + .head(extruderMold) + .id(`tfg:vi/curving/${materialName}_ingot_to_${tagPrefixName}`) } - event.recipes.vintageimprovements.curving(toolHeadItem, input_array) - .head(extruderMold) - .id(`tfg:vi/curving/${materialName}_ingot_to_${tagPrefixName}`) if (material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED) && ceramicMold !== null) { addMaterialCasting(event, toolHeadItem, ceramicMold, false, null, material, tagPrefixName, materialAmount * 144); diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.materials.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.materials.js index f44afca7b..93e855628 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/recipes.materials.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.materials.js @@ -139,14 +139,13 @@ function addMaterialCasting(event, outputItem, ceramicMold, isFireMold, gtMold, // which is an exception that everything can cast into const canBeCasted = material.hasFlag(TFGMaterialFlags.CAN_BE_UNMOLDED) || tagPrefixName === 'ingot'; if (canBeCasted - && tfcProperty !== null + && tfcProperty !== null && ceramicMold !== null // Liquid wrought iron doesn't exist in the TFC era - && material !== GTMaterials.WroughtIron) - { + && material !== GTMaterials.WroughtIron) { const outputMaterial = (tfcProperty.getOutputMaterial() === null) ? material : tfcProperty.getOutputMaterial(); const id = `${materialName}_${tagPrefixName}_${isFireMold ? 'fire' : 'ceramic'}`; - + event.recipes.tfc.casting(outputItem, ceramicMold, Fluid.of(outputMaterial.getFluid(), mbAmount), isFireMold ? 0.01 : 0.1) .id(`tfg:casting/${id}`); @@ -218,7 +217,9 @@ function addMaterialWelding(event, outputItem, inputItem1, inputItem2, material, * @param {Internal.RecipesEventJS} event */ function registerTFGMaterialRecipes(event) { - const $GreateMaterials = Java.loadClass("electrolyte.greate.registry.GreateMaterials") + const $GreateMaterials = Java.loadClass("electrolyte.greate.registry.GreateMaterials"); + const $GTToolType = Java.loadClass('com.gregtechceu.gtceu.api.item.tool.GTToolType'); + const $toolTypes = $GTToolType.getTypes(); forEachMaterial(material => { // greate moment @@ -226,8 +227,7 @@ function registerTFGMaterialRecipes(event) { || material === $GreateMaterials.RefinedRadiance || material === $GreateMaterials.ShadowSteel || material === $GreateMaterials.ChromaticCompound - || material === GTMaterials.DamascusSteel) - { return; } + || material === GTMaterials.DamascusSteel) { return; } if (material.hasProperty(PropertyKey.DUST)) { processDust(event, material) @@ -236,26 +236,53 @@ function registerTFGMaterialRecipes(event) { const toolProperty = material.getProperty(PropertyKey.TOOL) if (toolProperty !== null) { - modifyRecyclingAmounts(material) - let circuit = 1; - processGTToolHead(event, GTToolType.SWORD, "sword_head", TFGTagPrefix.toolHeadSword, 'tfg:sword_head_extruder_mold', 'tfc:ceramic/sword_blade_mold', circuit++, material) - processGTToolHead(event, GTToolType.PICKAXE, "pickaxe_head", TFGTagPrefix.toolHeadPickaxe, 'tfg:pickaxe_head_extruder_mold', 'tfc:ceramic/pickaxe_head_mold', circuit++, material) - processGTToolHead(event, GTToolType.AXE, "axe_head", TFGTagPrefix.toolHeadAxe, 'tfg:axe_head_extruder_mold', 'tfc:ceramic/axe_head_mold', circuit++, material) - processGTToolHead(event, GTToolType.SHOVEL, "shovel_head", TFGTagPrefix.toolHeadShovel, 'tfg:shovel_head_extruder_mold', 'tfc:ceramic/shovel_head_mold', circuit++, material) - processGTToolHead(event, GTToolType.HOE, "hoe_head", TFGTagPrefix.toolHeadHoe, 'tfg:hoe_head_extruder_mold', 'tfc:ceramic/hoe_head_mold', circuit++, material) - processGTToolHead(event, GTToolType.KNIFE, "knife_head", TFGTagPrefix.toolHeadKnife, 'tfg:knife_head_extruder_mold', 'tfc:ceramic/knife_blade_mold', circuit++, material) - processGTToolHead(event, GTToolType.FILE, "file_head", TFGTagPrefix.toolHeadFile, 'tfg:file_head_extruder_mold', null, circuit++, material) - processGTToolHead(event, GTToolType.SAW, "saw_head", TFGTagPrefix.toolHeadSaw, 'tfg:saw_head_extruder_mold', 'tfc:ceramic/saw_blade_mold', circuit++, material) - processGTToolHead(event, GTToolType.SPADE, "spade_head", TFGTagPrefix.toolHeadSpade, 'tfg:spade_head_extruder_mold', null, circuit++, material) - processGTToolHead(event, GTToolType.MINING_HAMMER, "mining_hammer_head", TFGTagPrefix.toolHeadMiningHammer, 'tfg:mining_hammer_head_extruder_mold', null, circuit++, material) - processGTToolHead(event, GTToolType.SCYTHE, "scythe_head", TFGTagPrefix.toolHeadScythe, 'tfg:scythe_head_extruder_mold', 'tfc:ceramic/scythe_blade_mold', circuit++, material) - processGTToolHead(event, GTToolType.HARD_HAMMER, "hammer_head", TFGTagPrefix.toolHeadHammer, 'tfg:hammer_head_extruder_mold', 'tfc:ceramic/hammer_head_mold', circuit++, material) - processGTToolHead(event, GTToolType.BUTCHERY_KNIFE, "butchery_knife_head", TFGTagPrefix.toolHeadButcheryKnife, 'tfg:butchery_knife_head_extruder_mold', null, circuit++, material) - processGTToolHead(event, GTToolType.SCREWDRIVER, "screwdriver_tip", TagPrefix.toolHeadScrewdriver, 'tfg:screwdriver_tip_extruder_mold', null, circuit++, material) - processGTToolHead(event, GTToolType.WRENCH, "wrench_tip", TagPrefix.toolHeadWrench, 'tfg:wrench_tip_extruder_mold', null, circuit++, material) - processGTToolHead(event, GTToolType.WIRE_CUTTER, "wire_cutter_head", TagPrefix.toolHeadWireCutter, 'tfg:wire_cutter_head_extruder_mold', null, circuit++, material) - processToolMortar(event, GTToolType.MORTAR, material) + modifyRecyclingAmounts(material) + + let circuit = 1; + processGTToolHead(event, GTToolType.SWORD, TFGTagPrefix.toolHeadSword, material) + processToolHead(event, TFGTagPrefix.toolHeadSword, "sword_head", 'tfg:sword_head_extruder_mold', 'tfc:ceramic/sword_blade_mold', circuit++, material) + processGTToolHead(event, GTToolType.PICKAXE, TFGTagPrefix.toolHeadPickaxe, material) + processToolHead(event, TFGTagPrefix.toolHeadPickaxe, "pickaxe_head", 'tfg:pickaxe_head_extruder_mold', 'tfc:ceramic/pickaxe_head_mold', circuit++, material) + processGTToolHead(event, GTToolType.AXE, TFGTagPrefix.toolHeadAxe, material) + processToolHead(event, TFGTagPrefix.toolHeadAxe, "axe_head", 'tfg:axe_head_extruder_mold', 'tfc:ceramic/axe_head_mold', circuit++, material) + processGTToolHead(event, GTToolType.SHOVEL, TFGTagPrefix.toolHeadShovel, material) + processToolHead(event, TFGTagPrefix.toolHeadShovel, "shovel_head", 'tfg:shovel_head_extruder_mold', 'tfc:ceramic/shovel_head_mold', circuit++, material) + processGTToolHead(event, GTToolType.HOE, TFGTagPrefix.toolHeadHoe, material) + processToolHead(event, TFGTagPrefix.toolHeadHoe, "hoe_head", 'tfg:hoe_head_extruder_mold', 'tfc:ceramic/hoe_head_mold', circuit++, material) + processGTToolHead(event, GTToolType.KNIFE, TFGTagPrefix.toolHeadKnife, material) + processToolHead(event, TFGTagPrefix.toolHeadKnife, "knife_head", 'tfg:knife_head_extruder_mold', 'tfc:ceramic/knife_blade_mold', circuit++, material) + processGTToolHead(event, GTToolType.FILE, TFGTagPrefix.toolHeadFile, material) + processToolHead(event, TFGTagPrefix.toolHeadFile, "file_head", 'tfg:file_head_extruder_mold', null, circuit++, material) + + processGTToolHead(event, GTToolType.SAW, TFGTagPrefix.toolHeadSaw, material) + processToolHead(event, TFGTagPrefix.toolHeadSaw, "saw_head", 'tfg:saw_head_extruder_mold', 'tfc:ceramic/saw_blade_mold', circuit++, material) + processGTToolHead(event, GTToolType.SPADE, TFGTagPrefix.toolHeadSpade, material) + processToolHead(event, TFGTagPrefix.toolHeadSpade, "spade_head", 'tfg:spade_head_extruder_mold', null, circuit++, material) + processGTToolHead(event, GTToolType.MINING_HAMMER, TFGTagPrefix.toolHeadMiningHammer, material) + processToolHead(event, TFGTagPrefix.toolHeadMiningHammer, "mining_hammer_head", 'tfg:mining_hammer_head_extruder_mold', null, circuit++, material) + processGTToolHead(event, GTToolType.SCYTHE, TFGTagPrefix.toolHeadScythe, material) + processToolHead(event, TFGTagPrefix.toolHeadScythe, "scythe_head", 'tfg:scythe_head_extruder_mold', 'tfc:ceramic/scythe_blade_mold', circuit++, material) + processGTToolHead(event, GTToolType.HARD_HAMMER, TFGTagPrefix.toolHeadHammer, material) + processToolHead(event, TFGTagPrefix.toolHeadHammer, "hammer_head", 'tfg:hammer_head_extruder_mold', 'tfc:ceramic/hammer_head_mold', circuit++, material) + processGTToolHead(event, GTToolType.BUTCHERY_KNIFE, TFGTagPrefix.toolHeadButcheryKnife, material) + processToolHead(event, TFGTagPrefix.toolHeadButcheryKnife, "butchery_knife_head", 'tfg:butchery_knife_head_extruder_mold', null, circuit++, material) + + // Tiered tools -- LV is skipped because all LV tools also have non-electric versions which + // the non-electric ToolType handles + processGTToolHead(event, GTToolType.SCREWDRIVER, TagPrefix.toolHeadScrewdriver, material) + processToolHead(event, TagPrefix.toolHeadScrewdriver, "screwdriver_tip", 'tfg:screwdriver_tip_extruder_mold', null, circuit++, material) + + processGTToolHead(event, GTToolType.WRENCH, TagPrefix.toolHeadWrench, material) + processToolHead(event, TagPrefix.toolHeadWrench, "wrench_tip", 'tfg:wrench_tip_extruder_mold', null, circuit++, material) + + processGTToolHead(event, GTToolType.WIRE_CUTTER, TagPrefix.toolHeadWireCutter, material) + processToolHead(event, TagPrefix.toolHeadWireCutter, "wire_cutter_head", 'tfg:wire_cutter_head_extruder_mold', null, circuit++, material) + + // chainsaw, drill, buzzsaw + // chainsaw and drill heads + + processToolMortar(event, GTToolType.MORTAR, material); processToolHead(event, TFGTagPrefix.toolHeadPropick, "propick_head", 'tfg:propick_head_extruder_mold', 'tfc:ceramic/propick_head_mold', circuit++, material) processToolHead(event, TFGTagPrefix.toolHeadJavelin, "javelin_head", 'tfg:javelin_head_extruder_mold', 'tfc:ceramic/javelin_head_mold', circuit++, material) @@ -264,7 +291,7 @@ function registerTFGMaterialRecipes(event) { processToolHead(event, TFGTagPrefix.toolHeadMattock, "mattock_head", 'tfg:mattock_head_extruder_mold', null, circuit++, material) processToolHead(event, TFGTagPrefix.toolHeadHook, "fish_hook", 'tfg:fish_hook_extruder_mold', null, circuit++, material) } - + if (material.hasProperty(PropertyKey.INGOT)) { processIngot(event, material) processIngotDouble(event, material) @@ -317,7 +344,7 @@ function registerTFGMaterialRecipes(event) { if (material.hasFlag(TFGMaterialFlags.HAS_TFC_UTILITY)) { processTongs(event, material) } - + const oreProperty = material.getProperty(PropertyKey.ORE); if (oreProperty !== null) { processSmallOre(event, material) diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.mo_si_b.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.mo_si_b.js new file mode 100644 index 000000000..0f4dd1700 --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.mo_si_b.js @@ -0,0 +1,110 @@ +"use strict"; + +function registerTFGMoSiBRecipes(event) { + + const $HeatRecipeCapability = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatRecipeCapability"); + const $HeatIngredient = Java.loadClass("fi.dea.mc.deafission.common.data.recipe.HeatIngredient"); + + // Mo-Si-B Line + + event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_mo_si_b_ingot' }) + event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_homogenized_mo_si_b_ingot' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_weak_mo_si_b_gas' }) + event.remove({ id: 'gtceu:electric_blast_furnace/blast_weak_mo_si_b' }) + event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_homogenized_mo_si_b_to_nugget' }) + event.remove({ id: 'gtceu:alloy_smelter/alloy_smelt_activated_mo_si_b_to_nugget' }) + event.remove({ id: 'gtceu:vacuum_freezer/cool_hot_weak_mo_si_b_ingot' }) + + event.recipes.gtceu.mixer('tfg:dirty_mo_si_b_dust') + .itemInputs(Item.of('gtceu:silicon_dust', 1), Item.of('gtceu:molybdenum_dust', 1), Item.of('gtceu:boron_dust', 1)) + .inputFluids(Fluid.of('tfg:argon_enriched_atmosphere', 6000)) + .itemOutputs(Item.of('tfg:dirty_mo_si_b_dust', 3)) + .outputFluids(Fluid.of('tfg:hydroxide_decomposition_off_gas', 300)) + .duration(12 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.arc_furnace('tfg:silicon_tetrachloride_water') + .itemInputs(Item.of('tfg:dirty_mo_si_b_dust', 1)) + .inputFluids(Fluid.of('gtceu:oxygen', 100)) + .itemOutputs(Item.of('tfg:weak_mo_si_b_dust', 1)) + .duration(3 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:hot_weak_mo_si_b_ingot') + .itemInputs(Item.of('tfg:weak_mo_si_b_dust', 1)) + .inputFluids(Fluid.of('gtceu:helium', 100)) + .itemOutputs(Item.of('tfg:hot_weak_mo_si_b_ingot', 1)) + .outputFluids(Fluid.of('tfg:furnace_exhaust_gas', 100)) + .duration(46 * 20) + .EUt(GTValues.VA[GTValues.HV]) + .blastFurnaceTemp(3150) + + event.recipes.gtceu.forge_hammer('tfg:hot_worked_mo_si_b_ingot') + .itemInputs(Item.of('tfg:hot_weak_mo_si_b_ingot', 1)) + .itemOutputs(Item.of('tfg:hot_worked_mo_si_b_ingot', 1)) + .duration(40 * 20) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath('tfg:mo_si_b_off_gas') + .itemInputs(Item.of('tfg:hot_worked_mo_si_b_ingot', 1)) + .inputFluids(Fluid.of('gtceu:hydrofluoric_acid', 1000)) + .itemOutputs(Item.of('tfg:hot_homogenized_mo_si_b_ingot', 1)) + .outputFluids(Fluid.of('tfg:mo_si_b_off_gas', 100)) + .duration(24 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('tfg:medium_temperature_off_gas') + .inputFluids(Fluid.of('tfg:mo_si_b_off_gas', 100), Fluid.of('tfg:furnace_exhaust_gas', 100)) + .outputFluids(Fluid.of('tfg:medium_temperature_off_gas', 100)) + .duration(82 * 20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.gas_pressurizer('tfg:highly_active_off_gas') + .inputFluids(Fluid.of('tfg:medium_temperature_off_gas', 100), Fluid.of('tfg:linac_activated_gas', 100), Fluid.of('tfg:hydroxide_decomposition_off_gas', 100)) + .outputFluids(Fluid.of('tfg:highly_active_off_gas', 100)) + .duration(37 * 20) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.vacuum_freezer('tfg:dirty_mo_si_b_dust') + .itemInputs(Item.of('tfg:hot_homogenized_mo_si_b_ingot', 1)) + .itemOutputs(Item.of('tfg:homogenized_mo_si_b_ingot', 1)) + .outputFluids(Fluid.of('tfg:inert_furnace_atmosphere', 5000)) + .duration(18 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.ostrum_linear_accelerator('tfg:activated_mo_si_b_ingot') + .perTick(true) + .inputFluids(Fluid.of('gtceu:residual_radioactive_concoction', 1)) + .perTick(false) + .itemInputs(Item.of('tfg:homogenized_mo_si_b_ingot', 1)) + .inputFluids(Fluid.of('gtceu:dense_ostrum_vapor', 1000)) + .itemOutputs(Item.of('tfg:activated_mo_si_b_ingot', 1)) + .outputFluids(Fluid.of('tfg:linac_activated_gas', 100)) + .input($HeatRecipeCapability.CAP, new $HeatIngredient(500, 900)) + .dimension('ad_astra:mars') + .duration(20 * 600) + .EUt(GTValues.VA[GTValues.IV]) + + event.recipes.gtceu.electric_blast_furnace('tfg:hot_mo_si_b_ingot') + .itemInputs(Item.of('tfg:activated_mo_si_b_ingot', 1)) + .inputFluids(Fluid.of('tfg:highly_active_off_gas', 100)) + .itemOutputs(Item.of('tfg:hot_mo_si_b_ingot', 1)) + .duration(46 * 20) + .EUt(GTValues.VA[GTValues.IV]) + .blastFurnaceTemp(3230) + + event.recipes.gtceu.vacuum_freezer('tfg:mo_si_b_ingot') + .itemInputs(Item.of('tfg:hot_mo_si_b_ingot', 1)) + .inputFluids(Fluid.of('gtceu:liquid_helium', 100)) + .itemOutputs(Item.of('tfg:mo_si_b_ingot', 1)) + .outputFluids(Fluid.of('tfg:inert_furnace_atmosphere', 5000)) + .duration(18 * 20) + .EUt(GTValues.VA[GTValues.EV]) + + event.recipes.gtceu.chemical_reactor('tfg:argon_enriched_atmosphere') + .inputFluids(Fluid.of('tfg:inert_furnace_atmosphere', 10000), Fluid.of('gtceu:argon', 1000)) + .outputFluids(Fluid.of('tfg:argon_enriched_atmosphere', 2000)) + .duration(60 * 20) + .EUt(GTValues.VA[GTValues.HV]) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.pipes_hidden.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.pipes_hidden.js new file mode 100644 index 000000000..2a368ca01 --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.pipes_hidden.js @@ -0,0 +1,125 @@ +//#region Hide Items + +function registerTFGMaterialHiddenPipesTags(event) { + + // Hide Fluid Pipes from EMI + + const hideFluidPipes = (material) => { + const sizes = ['tiny', 'small', 'normal', 'large', 'huge', 'quadruple', 'nonuple']; + sizes.forEach(size => { + event.add('c:hidden_from_recipe_viewers', `#forge:${size}_fluid_pipes/${material}`); + }); + }; + + hideFluidPipes('treated_wood'); + hideFluidPipes('bismuth_bronze'); + hideFluidPipes('black_bronze'); + hideFluidPipes('lead'); + hideFluidPipes('chromium'); + hideFluidPipes('blue_steel'); + hideFluidPipes('red_steel'); + hideFluidPipes('vanadium_steel'); + hideFluidPipes('tungsten'); + hideFluidPipes('ostrum'); + hideFluidPipes('tungsten_carbide'); + hideFluidPipes('tungsten_bismuth_oxide_composite'); + hideFluidPipes('europium'); + + // Hide Item Pipes from EMI + + const hideItemPipes = (material) => { + const sizes = ['small', 'normal', 'large', 'huge']; + const types = ['item_pipes', 'restrictive_pipes']; + sizes.forEach(size => { + types.forEach(type => { + event.add('c:hidden_from_recipe_viewers', `#forge:${size}_${type}/${material}`); + }); + }); + }; + + hideItemPipes('nickel'); + hideItemPipes('platinum'); + hideItemPipes('bismuth'); + hideItemPipes('rose_gold'); + hideItemPipes('sterling_silver'); + hideItemPipes('cobalt_brass'); + hideItemPipes('cupronickel'); + hideItemPipes('magnalium'); + hideItemPipes('osmium'); + hideItemPipes('osmiridium'); + hideItemPipes('americium'); + + const materialPlastic = ['polybenzimidazole', 'polytetrafluoroethylene', 'polyethylene']; + const toolsPlastic = ['mallet', 'plunger']; + materialPlastic.forEach(material => { + toolsPlastic.forEach(tool => { + event.add('c:hidden_from_recipe_viewers', `gtceu:${material}_${tool}` ); + }); + }); + + //#endregion + +} + + //#region Remove Recipes + +function registerTFGMaterialRemovePipesRecipes(event) { + + // Remove Fluid Pipes recipes + + const removeFluidPipes = (material) => { + const sizes = ['tiny', 'small', 'normal', 'large', 'huge', 'quadruple', 'nonuple']; + sizes.forEach(size => { + event.remove({ output: `#forge:${size}_fluid_pipes/${material}` }); + }); + }; + + removeFluidPipes('treated_wood'); + removeFluidPipes('bismuth_bronze'); + removeFluidPipes('black_bronze'); + removeFluidPipes('lead'); + removeFluidPipes('chromium'); + removeFluidPipes('blue_steel'); + removeFluidPipes('red_steel'); + removeFluidPipes('vanadium_steel'); + removeFluidPipes('tungsten'); + removeFluidPipes('ostrum'); + removeFluidPipes('tungsten_carbide'); + removeFluidPipes('tungsten_bismuth_oxide_composite'); + removeFluidPipes('europium'); + + // Remove Item Pipes recipes + + const removeItemPipes = (material) => { + const sizes = ['small', 'normal', 'large', 'huge']; + const types = ['item_pipes', 'restrictive_pipes']; + sizes.forEach(size => { + types.forEach(type => { + event.remove({ output: `#forge:${size}_${type}/${material}` }); + }); + }); + }; + + removeItemPipes('nickel'); + removeItemPipes('platinum'); + removeItemPipes('bismuth'); + removeItemPipes('rose_gold'); + removeItemPipes('sterling_silver'); + removeItemPipes('cobalt_brass'); + removeItemPipes('cupronickel'); + removeItemPipes('magnalium'); + removeItemPipes('osmium'); + removeItemPipes('osmiridium'); + removeItemPipes('americium'); + + const materialRemovePlastic = ['polybenzimidazole', 'polytetrafluoroethylene', 'polyethylene']; + const toolsRemovePlastic = ['mallet', 'plunger']; + + materialRemovePlastic.forEach(material => { + toolsRemovePlastic.forEach(tool => { + event.remove({ output: `gtceu:${material}_${tool}` }); + }); + }); + + //#endregion +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/ores_and_materials/recipes.zirconium.js b/kubejs/server_scripts/tfg/ores_and_materials/recipes.zirconium.js index 50666ac21..d798f13fa 100644 --- a/kubejs/server_scripts/tfg/ores_and_materials/recipes.zirconium.js +++ b/kubejs/server_scripts/tfg/ores_and_materials/recipes.zirconium.js @@ -12,13 +12,20 @@ function registerTFGZirconiumRecipes(event) { .circuit(1) .EUt(GTValues.VA[GTValues.MV]) - event.recipes.gtceu.chemical_reactor('tfg:silicon_tetrachloride_decomp') + event.recipes.gtceu.chemical_reactor('tfg:silicon_tetrachloride_water') .inputFluids('tfg:silicon_tetrachloride 1000', 'minecraft:water 2000') - .itemOutputs('#forge:dusts/silicon') - .outputFluids('gtceu:hydrochloric_acid 4000', 'gtceu:oxygen 2000') + .itemOutputs('#forge:dusts/silicon_dioxide') + .outputFluids('gtceu:hydrochloric_acid 4000') .duration(5 * 20) .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.chemical_reactor('tfg:silicon_tetrachloride_hydrogen') + .inputFluids('tfg:silicon_tetrachloride 1000', 'gtceu:hydrogen 2000') + .itemOutputs('#forge:dusts/polysilicon') + .outputFluids('gtceu:hydrochloric_acid 4000') + .duration(5 * 20) + .EUt(GTValues.VA[GTValues.HV]) + event.recipes.gtceu.chemical_reactor('tfg:zirconium_tetrachloride') .itemInputs('4x #forge:dusts/carbon', '6x #forge:dusts/zircon') .inputFluids('gtceu:chlorine 8000') diff --git a/kubejs/server_scripts/tfg/ores_and_materials/tags.materials.js b/kubejs/server_scripts/tfg/ores_and_materials/tags.materials.js new file mode 100644 index 000000000..6310d4cd3 --- /dev/null +++ b/kubejs/server_scripts/tfg/ores_and_materials/tags.materials.js @@ -0,0 +1,18 @@ +// priority: 0 +"use strict"; + +function registerTFGMaterialItemTags(event) { + + // Platline + event.add('tfg:platinum_ore_group', 'gtceu:purified_pentlandite_ore') + event.add('tfg:platinum_ore_group', 'gtceu:purified_chalcopyrite_ore') + event.add('tfg:platinum_ore_group', 'gtceu:purified_tetrahedrite_ore') + event.add('tfg:platinum_ore_group', 'gtceu:purified_bornite_ore') + event.add('tfg:platinum_ore_group', 'gtceu:purified_cooperite_ore') + event.add('tfg:platinum_ore_group', 'gtceu:purified_chalcocite_ore') + + // Crafting components + event.add('tfg:aluminium_oxide', '#forge:dusts/bauxite') + event.add('tfg:aluminium_oxide', '#forge:dusts/sapphire') + event.add('tfg:aluminium_oxide', '#forge:dusts/green_sapphire') +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js index 1e64d5941..3a63cf3c1 100644 --- a/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/powergen/nuclear/recipes.nuclear.js @@ -367,7 +367,7 @@ function registerTFGNuclearRecipes(event) { event.recipes.deafission.fission_reactor_coolant('tfg:tbu_coolant') .itemInputs(Ingredient.of([ - 'tfg:tbu_232_rod'])) + 'tfg:tbu_232_rod'/*, 'tfg:neptunium_237_rod', 'tfg:americium_241_rod', 'tfg:californium_252_rod'*/])) .perTick(true) .inputFluids(Fluid.of('tfg:heavy_water', 20)) .outputFluids(Fluid.of('gtceu:dense_steam', 1200)) @@ -806,7 +806,7 @@ function registerTFGNuclearRecipes(event) { 'CDC', 'EBE' ], { - A: 'gtceu:ostrum_normal_fluid_pipe', + A: 'gtceu:tungsten_steel_normal_fluid_pipe', B: 'gtceu:platinum_single_cable', C: '#gtceu:circuits/iv', D: 'gtceu:iv_machine_hull', diff --git a/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js b/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js index e979f098e..65ef639b4 100644 --- a/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js +++ b/kubejs/server_scripts/tfg/powergen/recipes.early_gas.js @@ -183,7 +183,7 @@ function registerTFGEarlyGasRecipes(event) { event.recipes.gtceu.electrolyzer('tfg:cracker_off_gas_recycling') .inputFluids(Fluid.of('tfg:cracker_off_gas', 1000)) .outputFluids(Fluid.of('gtceu:carbon_dioxide', 500), Fluid.of('gtceu:hydrogen', 500)) - .chancedOutput(Item.of('gtceu:tiny_rhenium_dust'), 1000, 0) // 10% chance + .chancedOutput(Item.of('gtceu:tiny_rhenium_dust'), 1000, 0) // 10% chance SWITCH TO 5% when new platline is out .duration(20*4.5) .EUt(GTValues.VA[GTValues.HV]) @@ -285,7 +285,7 @@ function registerTFGEarlyGasRecipes(event) { .EUt(GTValues.VA[GTValues.HV]) event.recipes.gtceu.chemical_reactor('tfg:catalyser_zsm') - .itemInputs(Item.of('#forge:dusts/platinum'), Item.of('10x #forge:dusts/rhenium')) + .itemInputs(Item.of('#forge:dusts/platinum'), Item.of('60x #forge:dusts/rhenium')) .inputFluids(Fluid.of('gtceu:hydrogen', 1000)) .inputFluids(Fluid.of('tfg:zsm5_gel', 1000)) .itemOutputs(Item.of('tfg:catalyser_pt_re_zsm', 1)) @@ -359,7 +359,7 @@ function registerTFGEarlyGasRecipes(event) { event.recipes.gtceu.distillery('tfg:rhenium_dust') .inputFluids(Fluid.of('gtceu:sulfuric_acid', 100)) .itemInputs(Item.of('tfg:loaded_resin', 1)) - .itemOutputs(Item.of('gtceu:rhenium_dust', 1)) + .itemOutputs(Item.of('gtceu:rhenium_dust', 6)) .duration(20*8) .EUt(GTValues.VA[GTValues.MV]) diff --git a/kubejs/server_scripts/tfg/primitive/recipes.artisan_table.js b/kubejs/server_scripts/tfg/primitive/recipes.artisan_table.js index 8df4d6ff2..c5024e780 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.artisan_table.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.artisan_table.js @@ -598,6 +598,22 @@ function registerTFGArtisanTableRecipes(event) { "type": "tfg:artisan" }).id(`tfg:artisan_table/phenolic_printed_circuit_board_4x`); //#endregion + + //#region Glass Lens + + event.custom({ + "result": {"item": "tfg:worked_optical_borosilicate_blank", "count": 1}, + "pattern": [ + " XX ", + " XXXX ", + "XXXXXX", + "XXXXXX", + " XXXX ", + " XX " + ], + "artisanType": "tfg:optical_borosilicate", + "type": "tfg:artisan" + }).id(`tfg:artisan_table/worked_optical_borosilicate_blank`); } diff --git a/kubejs/server_scripts/tfg/primitive/recipes.rubber.js b/kubejs/server_scripts/tfg/primitive/recipes.rubber.js index 9eb81a52b..518e2b91e 100644 --- a/kubejs/server_scripts/tfg/primitive/recipes.rubber.js +++ b/kubejs/server_scripts/tfg/primitive/recipes.rubber.js @@ -122,6 +122,13 @@ function registerTFGRubberRecipes(event) { .heated() .processingTime(50 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER) .id('tfg:vi/vacuumizing/rubber') + + // matches the sulfur dust + raw rubber recipe, just an alternative using powder + event.recipes.gtceu.alloy_smelter('tfg:rubber_ingot_powder') + .itemInputs('4x tfc:powder/sulfur', '3x #forge:dusts/raw_rubber') + .itemOutputs('#forge:ingots/rubber') + .duration(5 * 20) + .EUt(7) // Rubber Processing Line event.recipes.tfc.pot('tfc:powder/sulfur', Fluid.of('tfg:latex', 1000), 1200, 300) diff --git a/kubejs/server_scripts/tfg/primitive/tags.primitive.js b/kubejs/server_scripts/tfg/primitive/tags.primitive.js index 04296fd17..776a5a08b 100644 --- a/kubejs/server_scripts/tfg/primitive/tags.primitive.js +++ b/kubejs/server_scripts/tfg/primitive/tags.primitive.js @@ -81,11 +81,16 @@ function registerTFGPrimitiveItemTags(event) { event.add('tfg:artisan_table_inputs', 'gtceu:phenolic_circuit_board') event.add('tfg:artisan_table_inputs', 'gtceu:silver_single_wire') event.add('tfg:artisan_table_inputs', 'gtceu:silver_quadruple_wire') + event.add('tfg:artisan_table_inputs', 'tfg:optical_borosilicate_blank') + event.add('tfg:artisan_table_inputs', 'tfc:powder/flux') event.add('tfg:artisan_table_tools', '#forge:tools/hammers') event.add('tfg:artisan_table_tools', '#forge:tools/mallets') event.add('tfg:artisan_table_tools', '#forge:tools/files') event.add('tfg:artisan_table_tools', '#forge:tools/wire_cutters') event.add('tfg:artisan_table_tools', '#forge:tools/screwdrivers') + event.add('tfg:artisan_table_tools', '#forge:tools/buzzsaws') + event.add('tfg:artisan_table_tools', 'tfc:gem_saw') + event.add('tfg:artisan_table_tools', '#create:sandpaper') } function registerTFGPrimitiveBlockTags(event) { diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index d0ea9ba10..72ffcb1b0 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -51,14 +51,18 @@ const registerTFGRecipes = (event) => { registerTFGEquipmentRecipes(event) registerTFGDyeRecipes(event) registerTFGArtisanTableRecipes(event) + registerTFGHVMaterialRecipes(event) + registerTFGMoSiBRecipes(event) registerTFGCasingRecipes(event) + registerTFGCircuitRecipes(event) registerTFGEnderPearlRecipes(event) registerTFGMultiblockRecipes(event) registerTFGSteamBloomeryRecipes(event) registerTFGElectronicComponentsRecipes(event) registerTFGBakeliteRecipes(event) registerTFGCoilRecipes(event) + registerTFGBouleRecipes(event) registerTFGEarlyGasRecipes(event) registerTFGBoilerRecipes(event) @@ -92,4 +96,10 @@ const registerTFGRecipes = (event) => { registerTFGVenusRecipes(event) registerTFGBiochemRecipes(event) + + registerTFGEtchingRecipes(event) + registerTFGMVMaterialRecipes(event) + registerTFGGemSlurriesProcessing(event) + + registerTFGMaterialRemovePipesRecipes(event) } diff --git a/kubejs/server_scripts/tfg/recipes.temporary.js b/kubejs/server_scripts/tfg/recipes.temporary.js index 68d907bd4..c64d786e9 100644 --- a/kubejs/server_scripts/tfg/recipes.temporary.js +++ b/kubejs/server_scripts/tfg/recipes.temporary.js @@ -11,24 +11,6 @@ function registerTFGTemporaryRecipes(event) { event.shapeless('tfg:ostrum_linear_accelerator', 'gtceu:ostrum_linear_accelerator') event.shapeless('tfg:steam_bloomery', 'gtceu:steam_bloomery') - event.shapeless('greate:rose_quartz_dust', 'gtceu:rose_quartz_dust') - event.shapeless('greate:tiny_rose_quartz_dust', 'gtceu:tiny_rose_quartz_dust') - event.shapeless('greate:small_rose_quartz_dust', 'gtceu:small_rose_quartz_dust') - event.shapeless('greate:poor_raw_rose_quartz', 'gtceu:poor_raw_rose_quartz') - event.shapeless('greate:raw_rose_quartz', 'gtceu:raw_rose_quartz') - event.shapeless('greate:rich_raw_rose_quartz', 'gtceu:rich_raw_rose_quartz') - event.shapeless('greate:chipped_rose_quartz_gem', 'gtceu:chipped_rose_quartz_gem') - event.shapeless('greate:flawed_rose_quartz_gem', 'gtceu:flawed_rose_quartz_gem') - event.shapeless('greate:flawless_rose_quartz_gem', 'gtceu:flawless_rose_quartz_gem') - event.shapeless('greate:exquisite_rose_quartz_gem', 'gtceu:exquisite_rose_quartz_gem') - event.shapeless('greate:pure_rose_quartz_dust', 'gtceu:pure_rose_quartz_dust') - event.shapeless('greate:impure_rose_quartz_dust', 'gtceu:impure_rose_quartz_dust') - event.shapeless('greate:purified_rose_quartz_ore', 'gtceu:purified_rose_quartz_ore') - event.shapeless('greate:crushed_rose_quartz_ore', 'gtceu:crushed_rose_quartz_ore') - event.shapeless('greate:refined_rose_quartz_ore', 'gtceu:refined_rose_quartz_ore') - event.shapeless('greate:rose_quartz_lens', 'gtceu:rose_quartz_lens') - event.shapeless('greate:rose_quartz_plate', 'gtceu:rose_quartz_plate') - event.shapeless('tfg:igneous_felsic_dust', 'gtceu:granite_dust') event.shapeless('tfg:igneous_intermediate_dust', 'gtceu:diorite_dust') event.shapeless('tfg:igneous_intermediate_dust', 'gtceu:andesite_dust') diff --git a/kubejs/server_scripts/tfg/space_general/recipes.rockets.js b/kubejs/server_scripts/tfg/space_general/recipes.rockets.js index 25a92c9c1..f583f52d1 100644 --- a/kubejs/server_scripts/tfg/space_general/recipes.rockets.js +++ b/kubejs/server_scripts/tfg/space_general/recipes.rockets.js @@ -48,7 +48,7 @@ function registerTFGRocketRecipes(event) { event.recipes.gtceu.assembler(`tfg:rocket_fin_t1`) .itemInputs( - ChemicalHelper.get(TagPrefix.plate, TFGHelpers.getMaterial('rocket_alloy_t1'), 1), + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 1), ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 1) ) .itemOutputs('ad_astra:rocket_fin') @@ -60,13 +60,14 @@ function registerTFGRocketRecipes(event) { event.recipes.gtceu.assembler('tfg:rocket_steel_engine') .itemInputs( - ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 2), + ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.StainlessSteel, 8), + Item.of('tfg:double_mo_50_re_plate', 4), '2x #gtceu:circuits/hv', - 'gtceu:hv_electric_pump', + '4x gtceu:hv_fluid_regulator', '2x gtceu:power_thruster', ChemicalHelper.get(TagPrefix.rotor, GTMaterials.StainlessSteel, 1) ) - .inputFluids(Fluid.of('gtceu:blue_steel', 144 * 8)) + .inputFluids(Fluid.of('gtceu:blue_steel', 144 * 16)) .itemOutputs('ad_astra:steel_engine') .duration(600) .circuit(2) @@ -75,11 +76,11 @@ function registerTFGRocketRecipes(event) { event.recipes.gtceu.assembler('ad_astra:assembler_tier_1_rocket') .itemInputs( - ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 8), + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 16), '4x ad_astra:rocket_fin', '1x ad_astra:steel_engine', '1x ad_astra:rocket_nose_cone', - '16x #forge:insulation_t1', + '16x #forge:plates/basalt_fiber', '4x #gtceu:circuits/hv' ) .inputFluids(Fluid.of('gtceu:silicon', 144 * 16)) @@ -91,11 +92,11 @@ function registerTFGRocketRecipes(event) { event.recipes.gtceu.assembler('ad_astra:assembler_tier_1_double_rocket') .itemInputs( - ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 12), + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t1'), 24), '4x ad_astra:rocket_fin', '1x ad_astra:steel_engine', '1x ad_astra:rocket_nose_cone', - '24x #forge:insulation_t1', + '24x #forge:plates/basalt_fiber', '6x #gtceu:circuits/hv' ) .inputFluids(Fluid.of('gtceu:silicon', 144 * 24)) @@ -105,6 +106,58 @@ function registerTFGRocketRecipes(event) { .EUt(GTValues.VA[GTValues.HV]) .addMaterialInfo(true, true) + + // Basalt Plating for Rocket + + event.recipes.gtceu.chemical_reactor(`tfg:dichloropropane`) + .inputFluids(Fluid.of('gtceu:propene', 1000), Fluid.of('gtceu:chlorine', 2000)) + .outputFluids(Fluid.of('tfg:dichloropropane', 1000)) + .duration(20 * 12) + .circuit(2) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_reactor(`tfg:3_chloropropylamine`) + .inputFluids(Fluid.of('tfg:dichloropropane', 1000), Fluid.of('gtceu:ammonia', 2000)) + .itemOutputs(Item.of('gtceu:ammonium_chloride_dust', 1)) + .outputFluids(Fluid.of('tfg:3_chloropropylamine', 1000)) + .duration(20 * 20) + .circuit(2) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor(`tfg:aminopropyl_chlorosilane`) + .inputFluids(Fluid.of('tfg:3_chloropropylamine', 1000), Fluid.of('tfg:silicon_tetrachloride', 1000)) + .outputFluids(Fluid.of('tfg:aminopropyl_chlorosilane', 1000), Fluid.of('gtceu:hydrochloric_acid', 1000)) + .duration(20 * 24) + .circuit(2) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.chemical_reactor(`tfg:3_aminopropyltriethoxysilane`) + .inputFluids(Fluid.of('tfg:aminopropyl_chlorosilane', 1000), Fluid.of('gtceu:ethanol', 3000)) + .outputFluids(Fluid.of('tfg:3_aminopropyltriethoxysilane', 1000), Fluid.of('gtceu:hydrochloric_acid', 3000)) + .duration(20 * 32) + .circuit(3) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.extruder('tfg:forge:fine_wires_basalt_fiber') + .itemInputs(Item.of('tfc:brick/basalt')) + .notConsumable(Item.of('gtceu:wire_extruder_mold')) + .itemOutputs(Item.of('#forge:fine_wires/basalt_fiber', 8)) + .duration(20 * 17) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.chemical_bath(`tfg:foils_basalt_fiber`) + .itemInputs(Item.of('#forge:fine_wires/basalt_fiber', 64)) + .inputFluids(Fluid.of('tfg:3_aminopropyltriethoxysilane', 500)) + .itemOutputs(Item.of('#forge:foils/basalt_fiber')) + .duration(20 * 16) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.compressor(`tfg:3_aminopropyltriethoxysilane`) + .itemInputs(Item.of('#forge:foils/basalt_fiber', 4)) + .itemOutputs(Item.of('#forge:plates/basalt_fiber')) + .duration(20 * 48) + .EUt(GTValues.VA[GTValues.MV]) + //#endregion @@ -175,7 +228,7 @@ function registerTFGRocketRecipes(event) { .itemInputs( ChemicalHelper.get(TagPrefix.plateDouble, GTMaterials.Titanium, 4), '2x #gtceu:circuits/ev', - 'gtceu:ev_electric_pump', + '4x gtceu:ev_fluid_regulator', '3x gtceu:advanced_power_thruster', ChemicalHelper.get(TagPrefix.rod, GTMaterials.NeodymiumMagnetic, 4), ChemicalHelper.get(TagPrefix.rotor, GTMaterials.Titanium, 1)) @@ -188,7 +241,7 @@ function registerTFGRocketRecipes(event) { event.recipes.gtceu.assembler('ad_astra:tier_2_rocket') .itemInputs( - ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t2'), 12), + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t2'), 24), '4x tfg:rocket_fin_t2', '1x ad_astra:desh_engine', '1x tfg:rocket_cone_t2', @@ -204,7 +257,7 @@ function registerTFGRocketRecipes(event) { event.recipes.gtceu.assembler('ad_astra:tier_2_double_rocket') .itemInputs( - ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t2'), 18), + ChemicalHelper.get(TagPrefix.plateDense, TFGHelpers.getMaterial('rocket_alloy_t2'), 32), '4x tfg:rocket_fin_t2', '1x ad_astra:desh_engine', '1x tfg:rocket_cone_t2', @@ -269,7 +322,7 @@ function registerTFGRocketRecipes(event) { .itemInputs( '6x #forge:double_plates/tungsten_steel', '4x #gtceu:circuits/iv', - 'gtceu:iv_electric_pump', + '4x gtceu:iv_fluid_regulator', '3x tfg:elite_power_thruster', '4x #forge:insulation_t3/cryo', '6x #forge:rods/magnetic_neodymium', @@ -284,7 +337,7 @@ function registerTFGRocketRecipes(event) { event.recipes.gtceu.assembler('tfg:rocket_ostrum_tank') .itemInputs( '4x #forge:double_plates/rocket_alloy_t3', - 'gtceu:iv_electric_pump', + '4x gtceu:iv_fluid_regulator', 'tfg:elite_power_thruster', '2x #forge:insulation_t3/cryo') .inputFluids(Fluid.of('gtceu:ostrum', 144 * 4)) diff --git a/kubejs/server_scripts/tfg/space_general/recipes.space.js b/kubejs/server_scripts/tfg/space_general/recipes.space.js index 88e54b3a5..7741b1231 100644 --- a/kubejs/server_scripts/tfg/space_general/recipes.space.js +++ b/kubejs/server_scripts/tfg/space_general/recipes.space.js @@ -56,48 +56,32 @@ function registerTFGSpaceRecipes(event) { // Aqueous accumulator -- use adjacentFluids (plural) to avoid rhino ambiguous method issues - let aaCircuit = 1; - event.recipes.gtceu.aqueous_accumulator('water') - .circuit(aaCircuit++) + .circuit(1) .duration(20) .EUt(GTValues.VHA[GTValues.ULV]) .adjacentFluids(["minecraft:water"]) .outputFluids(Fluid.of("minecraft:water", 1000)) event.recipes.gtceu.aqueous_accumulator('sea_water') - .circuit(aaCircuit++) + .circuit(2) .duration(20) .EUt(GTValues.VA[GTValues.ULV]) .adjacentFluids(["tfc:salt_water"]) .outputFluids(Fluid.of("tfc:salt_water", 1000)) event.recipes.gtceu.aqueous_accumulator('semiheavy_water_mars') - .circuit(aaCircuit++) + .circuit(3) .dimension('ad_astra:mars') .duration(20) .EUt(GTValues.VHA[GTValues.ULV]) .adjacentFluids(["tfg:semiheavy_ammoniacal_water"]) .outputFluids(Fluid.of("tfg:semiheavy_ammoniacal_water", 1000)) - event.recipes.gtceu.aqueous_accumulator('lava_overworld') - .circuit(aaCircuit++) - .dimension('minecraft:overworld') - .duration(20*15) - .EUt(GTValues.VHA[GTValues.HV]) - .adjacentFluids(["minecraft:lava"]) - .outputFluids(Fluid.of("minecraft:lava", 1000)) - - event.recipes.gtceu.aqueous_accumulator('lava_nether') - .circuit(aaCircuit++) - .dimension('minecraft:the_nether') - .duration(20*15) - .EUt(GTValues.VHA[GTValues.HV]) - .adjacentFluids(["minecraft:lava"]) - .outputFluids(Fluid.of("minecraft:lava", 1000)) + // 4 and 5 used to be lava, add something else here event.recipes.gtceu.aqueous_accumulator('spring_water') - .circuit(aaCircuit++) + .circuit(6) .dimension('minecraft:overworld') .duration(20) .EUt(GTValues.VA[GTValues.LV]) @@ -105,7 +89,7 @@ function registerTFGSpaceRecipes(event) { .outputFluids(Fluid.of("tfc:spring_water", 1000)) event.recipes.gtceu.aqueous_accumulator('more_water') - .circuit(aaCircuit++) + .circuit(7) .duration(10) .EUt(GTValues.VHA[GTValues.HV]) .adjacentFluids(["minecraft:water"]) diff --git a/kubejs/server_scripts/tfg/space_general/recipes.space_suits.js b/kubejs/server_scripts/tfg/space_general/recipes.space_suits.js index 7c1d54856..d0699bf7f 100644 --- a/kubejs/server_scripts/tfg/space_general/recipes.space_suits.js +++ b/kubejs/server_scripts/tfg/space_general/recipes.space_suits.js @@ -58,7 +58,7 @@ function registerTFGSpaceSuitRecipes(event) { '#forge:foils/silicone_rubber', 'tfg:polycaprolactam_fabric' ) - .itemOutputs('2x tfg:space_suit_fabric') + .itemOutputs('4x tfg:space_suit_fabric') .duration(20 * 10) .EUt(GTValues.VA[GTValues.HV]) .addMaterialInfo(true) diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 773cd550b..c8fcb5a2e 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -17,22 +17,17 @@ const registerTFGItemTags = (event) => { registerTFGMarsItemTags(event) registerTFGVenusItemTags(event) registerTFGAquaponicsItemTags(event) + registerTFGMaterialItemTags(event) + registerTFGMaterialHiddenPipesTags(event) - // TEMPORARY, REMOVE WHEN GURMAN FIXES THIS - event.remove('tfc:foods', 'tfc_gourmet:havai_pizza') + // Disable auto generation for Vintage Recipes + event.add('tfg:no_vintage_gen', 'tfg:basalt_fiber_plate') + //Circuit Stuff event.add('tfg:components/uv_leds', 'tfg:uv_led') event.add('tfg:components/uv_leds', 'tfg:smd_uv_led') - // Platline - event.add('tfg:platinum_ore_group', 'gtceu:purified_pentlandite_ore') - event.add('tfg:platinum_ore_group', 'gtceu:purified_chalcopyrite_ore') - event.add('tfg:platinum_ore_group', 'gtceu:purified_tetrahedrite_ore') - event.add('tfg:platinum_ore_group', 'gtceu:purified_bornite_ore') - event.add('tfg:platinum_ore_group', 'gtceu:purified_cooperite_ore') - event.add('tfg:platinum_ore_group', 'gtceu:purified_chalcocite_ore') - //Bronze Crates & Drums event.add('tfg:any_bronze_crate', 'gtceu:bronze_crate') event.add('tfg:any_bronze_crate', 'gtceu:black_bronze_crate') @@ -41,13 +36,11 @@ const registerTFGItemTags = (event) => { event.add('tfg:any_bronze_drum', 'gtceu:black_bronze_drum') event.add('tfg:any_bronze_drum', 'gtceu:bismuth_bronze_drum') - //#region Tools + // Tools event.add('tfg:empty_dna_syringes', 'tfg:empty_dna_syringe') event.add('tfg:empty_dna_syringes', 'tfg:clean_dna_syringe') event.add('tfc:sewing_needles', 'tfg:stainless_steel_needle') - - //#endregion // Airplane Upgrades global.AIRCRAFT_UPGRADES.forEach(value => { @@ -59,11 +52,6 @@ const registerTFGItemTags = (event) => { event.add(`gtceu:circuits/${tier}`, `tfg:${tier}_universal_circuit`); }) - // Crafting components - event.add('tfg:aluminium_oxide', '#forge:dusts/bauxite') - event.add('tfg:aluminium_oxide', '#forge:dusts/sapphire') - event.add('tfg:aluminium_oxide', '#forge:dusts/green_sapphire') - // Use either cast or wrought iron event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/iron') event.add('tfg:any_iron_double_ingot', '#forge:double_ingots/wrought_iron') @@ -88,7 +76,7 @@ const registerTFGItemTags = (event) => { event.add("tfg:bloomery_basic_fuels", "gtceu:raw_coal"); event.add("tfg:bloomery_basic_fuels", "gtceu:poor_raw_coal"); - //#region holder materials + // Holder materials event.remove('forge:dusts', 'tfg:nitrocellulose') event.remove('forge:dusts/nitrocellulose', 'tfg:nitrocellulose') @@ -101,7 +89,24 @@ const registerTFGItemTags = (event) => { event.remove('forge:nuggets', 'tfg:polycaprolactam_string') event.remove('forge:nuggets/tfg_polycaprolactam', 'tfg:polycaprolactam_string') - //#endregion + + // Tags for the precision fabricator renderer + event.add('tfg:precision_fabricator_dipped_items', 'tfg:silicon_seed_crystal') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/amethyst') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/opal') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/diamond') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/sapphire') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/green_sapphire') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/ruby') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/red_garnet') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/yellow_garnet') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/lapis') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/sodalite') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/lazurite') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/blue_topaz') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/topaz') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/emerald') + event.add('tfg:precision_fabricator_holder_rods', '#forge:rods/olivine') } //#region Blocks @@ -148,6 +153,8 @@ const registerTFGFluidTags = (event) => { event.add('tfg:clean_water', 'tfc:river_water') event.add('tfg:clean_water', 'tfc:spring_water') + event.add('tfg:water_boiler', 'minecraft:water') + event.add('tfc:any_water', 'tfg:semiheavy_ammoniacal_water') event.add('tfc:hydrating', 'tfg:semiheavy_ammoniacal_water') event.add('tfc:drinkables', 'tfg:semiheavy_ammoniacal_water') @@ -239,4 +246,5 @@ const registerTFGEntityTypeTags = (event) => { event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:pet_enderman') event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:axolotl_pet_enderman') event.add('ad_astra:can_survive_in_space', 'endermanoverhaul:hammerhead_pet_enderman') + } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/venus/recipes.biochem.js b/kubejs/server_scripts/tfg/venus/recipes.biochem.js index d9f0a9c5f..a5644778f 100644 --- a/kubejs/server_scripts/tfg/venus/recipes.biochem.js +++ b/kubejs/server_scripts/tfg/venus/recipes.biochem.js @@ -229,7 +229,7 @@ function registerTFGBiochemRecipes(event) { event.recipes.gtceu.assembler('tfg:casings/machine_casing_sterilizing_pipes') .itemInputs( ChemicalHelper.get(TagPrefix.frameGt, GTMaterials.get('ostrum'), 1), - ChemicalHelper.get(TagPrefix.pipeQuadrupleFluid, GTMaterials.get('ostrum'), 1), + ChemicalHelper.get(TagPrefix.pipeQuadrupleFluid, GTMaterials.TungstenSteel, 1), Ingredient.of('#tfg:components/uv_leds').withCount(16) ) .inputFluids(Fluid.of('gtceu:borosilicate_glass', 144)) diff --git a/kubejs/server_scripts/vintage_improvements/recipes.js b/kubejs/server_scripts/vintage_improvements/recipes.js index 4e125b161..48558d99e 100644 --- a/kubejs/server_scripts/vintage_improvements/recipes.js +++ b/kubejs/server_scripts/vintage_improvements/recipes.js @@ -438,26 +438,6 @@ function registerVintageImprovementsRecipes(event) { .processingTime(100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER) .id(`tfg:vi/lathe/rose_quartz_lens`) - event.recipes.vintageimprovements.polishing(['#forge:lenses/diamond', '2x #forge:dusts/diamond'], '#forge:exquisite_gems/diamond') - .speedLimits(1) - .processingTime(100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER) - .id(`tfg:vi/lathe/diamond_lens`) - - event.recipes.vintageimprovements.polishing(['#forge:lenses/emerald', '2x #forge:dusts/emerald'], '#forge:exquisite_gems/emerald') - .speedLimits(1) - .processingTime(100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER) - .id(`tfg:vi/lathe/emerald_lens`) - - event.recipes.vintageimprovements.polishing(['#forge:lenses/ruby', '2x #forge:dusts/ruby'], '#forge:exquisite_gems/ruby') - .speedLimits(1) - .processingTime(100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER) - .id(`tfg:vi/lathe/ruby_lens`) - - event.recipes.vintageimprovements.polishing(['#forge:lenses/sapphire', '2x #forge:dusts/sapphire'], '#forge:exquisite_gems/sapphire') - .speedLimits(1) - .processingTime(100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER) - .id(`tfg:vi/lathe/sapphire_lens`) - event.recipes.vintageimprovements.polishing(['#forge:lenses/amethyst', '2x #forge:dusts/amethyst'], '#forge:exquisite_gems/amethyst') .speedLimits(1) .processingTime(100 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER) diff --git a/kubejs/startup_scripts/gtceu/constants.js b/kubejs/startup_scripts/gtceu/constants.js index 2ace7e593..3381ce6e3 100644 --- a/kubejs/startup_scripts/gtceu/constants.js +++ b/kubejs/startup_scripts/gtceu/constants.js @@ -460,6 +460,9 @@ global.ADD_CIRCUIT = /** @type {const} */ ([ { recipeId: "gtceu:chemical_reactor/biphenyl_from_toluene", circuitNumber: 2 }, { recipeId: "gtceu:large_chemical_reactor/biphenyl_from_toluene", circuitNumber: 2 }, + + { recipeId: "gtceu:chemical_reactor/polydimethylsiloxane_from_silicon", circuitNumber: 3 }, + { recipeId: "gtceu:large_chemical_reactor/polydimethylsiloxane_from_silicon", circuitNumber: 3 } ]); //#endregion diff --git a/kubejs/startup_scripts/gtceu/material_modification.js b/kubejs/startup_scripts/gtceu/material_modification.js deleted file mode 100644 index 0fa563739..000000000 --- a/kubejs/startup_scripts/gtceu/material_modification.js +++ /dev/null @@ -1,495 +0,0 @@ -// priority: 0 -"use strict"; - -const registerGTCEuMaterialModification = (event) => { - - //const TFGPropertyKey = Java.loadClass('su.terrafirmagreg.core.compat.gtceu.TFGPropertyKeys') - const $TFC_PROPERTY = Java.loadClass('su.terrafirmagreg.core.compat.gtceu.properties.TFCProperty') - const $ORE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.OreProperty') - const $INGOT_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.IngotProperty') - const $DUST_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.DustProperty'); - const $BLAST_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.BlastProperty') - const $FLUID_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidProperty') - const $ITEM_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.ItemPipeProperties') - const $FLUID_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties') - const $HAZARD_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.HazardProperty') - const $TFGT_MEDICAL_CONDITIONS = Java.loadClass('su.terrafirmagreg.core.common.data.tfgt.TFGTMedicalConditions') - - const $MATERIAL_FLAGS = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialFlags') - - const $FluidStorageKeys = Java.loadClass('com.gregtechceu.gtceu.api.fluids.store.FluidStorageKeys') - const $FluidBuilder = Java.loadClass('com.gregtechceu.gtceu.api.fluids.FluidBuilder'); - - const $GreateMaterials = Java.loadClass("electrolyte.greate.registry.GreateMaterials") - - const { - HAS_TFC_TOOL, // used to generate new TFC items like javelins - HAS_GT_TOOL, // does not generate items, just TFC recipes for GT tools - HAS_TFC_ARMOR, - HAS_TFC_UTILITY, - CAN_BE_UNMOLDED, - GENERATE_DOUBLE_INGOTS, - HAS_SMALL_TFC_ORE, - GENERATE_DUSTY_ORES, - } = TFGMaterialFlags - - const { - GENERATE_ROD, - GENERATE_LONG_ROD, - GENERATE_BOLT_SCREW, - GENERATE_ROTOR, - GENERATE_SPRING, - GENERATE_SMALL_GEAR, - GENERATE_GEAR, - GENERATE_FRAME, - GENERATE_PLATE, - GENERATE_DENSE, - GENERATE_RING, - GENERATE_FOIL, - GENERATE_FINE_WIRE, - NO_ORE_PROCESSING_TAB, - NO_ORE_SMELTING, - DISABLE_DECOMPOSITION - } = $MATERIAL_FLAGS - - const metalTooling = [ - GTToolType.AXE, - GTToolType.PICKAXE, - GTToolType.HARD_HAMMER, - GTToolType.BUTCHERY_KNIFE, - GTToolType.SWORD, - GTToolType.FILE, - GTToolType.SAW, - GTToolType.SHOVEL, - GTToolType.SHOVEL, - GTToolType.SPADE, - GTToolType.MINING_HAMMER, - GTToolType.HOE, - GTToolType.KNIFE, - GTToolType.BUZZSAW, - GTToolType.SCYTHE, - GTToolType.WIRE_CUTTER, - GTToolType.WIRE_CUTTER_LV, - GTToolType.WIRE_CUTTER_HV, - GTToolType.WIRE_CUTTER_IV, - GTToolType.DRILL_LV, - GTToolType.DRILL_MV, - GTToolType.DRILL_HV, - GTToolType.DRILL_EV, - GTToolType.DRILL_IV, - GTToolType.SCREWDRIVER, - GTToolType.SCREWDRIVER_LV, - GTToolType.SCREWDRIVER_HV, - GTToolType.SCREWDRIVER_IV, - GTToolType.CHAINSAW_LV, - GTToolType.CHAINSAW_HV, - GTToolType.CHAINSAW_IV, - GTToolType.WRENCH, - GTToolType.WRENCH_LV, - GTToolType.WRENCH_HV, - GTToolType.WRENCH_IV, - GTToolType.CROWBAR, - ] - - GTMaterials.Clay.addFlags(DISABLE_DECOMPOSITION); - GTMaterials.Brick.addFlags(DISABLE_DECOMPOSITION); - - - // TFC_PROPERTY = (forging temp, welding temp, melt temp, material, tier, percent of material) - // OR = (forging temp, welding temp, melt temp, tier) - // - // If registering a new material that you want to melt into a liquid in a vessel etc, - // make sure you add it to registerGTCEUMetals()! - - GTMaterials.Copper.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(648, 864, 1080, 1)); - GTMaterials.BismuthBronze.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(591, 788, 985, 2)); - GTMaterials.Bronze.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(570, 760, 950, 2)); - GTMaterials.BlackBronze.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(642, 856, 1070, 2)); - GTMaterials.WroughtIron.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3)); - GTMaterials.Steel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 4)); - GTMaterials.BlackSteel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(891, 1188, 1485, 5)); - GTMaterials.BlueSteel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); - GTMaterials.RedSteel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); - GTMaterials.get('tfg:weak_blue_steel').setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); - GTMaterials.get('tfg:weak_red_steel').setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); - - GTMaterials.Gold.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(636, 848, 1060, 1)); - GTMaterials.Bismuth.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(162, 216, 270, 1)); - GTMaterials.Brass.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(558, 744, 930, 2)); - GTMaterials.Nickel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(872, 1162, 1453, 1)); - GTMaterials.RoseGold.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(576, 768, 960, 1)); - GTMaterials.Silver.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(577, 769, 961, 1)); - GTMaterials.Tin.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 230, 1)); - GTMaterials.Zinc.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(252, 336, 420, 1)); - GTMaterials.SterlingSilver.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(570, 760, 950, 1)); - GTMaterials.Iron.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3)); - - GTMaterials.Hematite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); - GTMaterials.Limonite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); - GTMaterials.Magnetite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); - GTMaterials.Pyrite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); - GTMaterials.Goethite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); - GTMaterials.BasalticMineralSand.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 80)); - GTMaterials.GraniticMineralSand.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 80)); - GTMaterials.VanadiumMagnetite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 80)); - - GTMaterials.Malachite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 90)); - GTMaterials.Tetrahedrite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 90)); - GTMaterials.Chalcopyrite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 85)); - GTMaterials.Chalcocite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 95)); - GTMaterials.Bornite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 90)); - - GTMaterials.Cassiterite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(648, 864, 230, GTMaterials.Tin, 1, 100)); - GTMaterials.CassiteriteSand.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 230, GTMaterials.Tin, 1, 80)); - GTMaterials.Sphalerite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 420, GTMaterials.Zinc, 1, 90)); - GTMaterials.Garnierite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1453, GTMaterials.Nickel, 1, 100)); - GTMaterials.Pentlandite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1453, GTMaterials.Nickel, 1, 85)); - - GTMaterials.Redstone.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(240, 320, 460, 1)); - 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(330 * 0.6, 330 * 0.8, 330, 2)); - GTMaterials.Galena.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(330 * 0.6, 330 * 0.8, 330, GTMaterials.Lead, 2, 85)); - GTMaterials.Invar.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1494 * 0.6, 1494 * 0.8, 1494, 3)); - GTMaterials.Potin.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(807 * 0.6, 807 * 0.8, 807, 2)); - GTMaterials.Cobalt.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1495 * 0.6, 1495 * 0.8, 1495, 3)); - GTMaterials.Cobaltite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1495 * 0.6, 1495 * 0.8, 1495, GTMaterials.Cobalt, 3, 85)); - GTMaterials.CobaltBrass.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1060 * 0.6, 1060 * 0.8, 1060, 3)); - let AlSi = GTMaterials.get('aluminium_silicate') - AlSi.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, 1)) - GTMaterials.Kyanite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 95)) - GTMaterials.Mica.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 40)) - GTMaterials.Spodumene.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 30)) - GTMaterials.Pollucite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 25)) - - - // Generate Dusty Ores for Infinite Ores - GTMaterials.Goethite.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Diamond.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.CertusQuartz.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Gold.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Cassiterite.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Pitchblende.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Silver.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.TricalciumPhosphate.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Bauxite.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Lead.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Beryllium.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Thorium.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Uraninite.addFlags(GENERATE_DUSTY_ORES); - GTMaterials.Hematite.addFlags(GENERATE_DUSTY_ORES); - - // 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); - GTMaterials.Iron.addFlags(CAN_BE_UNMOLDED); - - // TFC tool tiers - 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); - GTMaterials.RedSteel.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); - GTMaterials.BlueSteel.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); - - // TFC ores - GTMaterials.Bismuth.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Cassiterite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Garnierite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Hematite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Limonite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Magnetite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Malachite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Sphalerite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Tetrahedrite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Chromite.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Copper.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Gold.addFlags(HAS_SMALL_TFC_ORE); - GTMaterials.Silver.addFlags(HAS_SMALL_TFC_ORE); - - // Other materials that are compatible with TFC - GTMaterials.Iron.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.Gold.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.Bismuth.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.Brass.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.Nickel.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.RoseGold.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.Silver.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.Tin.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - GTMaterials.Zinc.addFlags(GENERATE_DOUBLE_INGOTS, GENERATE_BOLT_SCREW, HAS_TFC_UTILITY); - GTMaterials.SterlingSilver.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); - - 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, ); - GTMaterials.Cobalt.addFlags(GENERATE_DOUBLE_INGOTS); - GTMaterials.CobaltBrass.addFlags(GENERATE_DOUBLE_INGOTS, HAS_GT_TOOL); - - // Superconductors - GTMaterials.ManganesePhosphide.addFlags(GENERATE_FINE_WIRE); - GTMaterials.MagnesiumDiboride.addFlags(GENERATE_FINE_WIRE); - GTMaterials.MercuryBariumCalciumCuprate.addFlags(GENERATE_FINE_WIRE); - GTMaterials.UraniumTriplatinum.addFlags(GENERATE_FINE_WIRE); - GTMaterials.SamariumIronArsenicOxide.addFlags(GENERATE_FINE_WIRE); - //GTMaterials.IndiumTinBariumTitaniumCuprate.addFlags(); - //GTMaterials.UraniumRhodiumDinaquadide.addFlags(); - //GTMaterials.EnrichedNaquadahTriniumEuropiumDuranide.addFlags(); - GTMaterials.RutheniumTriniumAmericiumNeutronate.addFlags(GENERATE_FINE_WIRE); - - // Ores - GTMaterials.Bismuth.setProperty(PropertyKey.ORE, new $ORE_PROPERTY()); - GTMaterials.Borax.setProperty(PropertyKey.ORE, new $ORE_PROPERTY()); - - let rose_quartz = $GreateMaterials.RoseQuartz; - rose_quartz.setProperty(PropertyKey.ORE, new $ORE_PROPERTY()); - rose_quartz.getProperty(PropertyKey.ORE).setOreByProducts(rose_quartz, GTMaterials.Redstone, rose_quartz); - - // Change byproducts so you can't get certus from normal quartzite - GTMaterials.Quartzite.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.NetherQuartz, GTMaterials.Barite, GTMaterials.NetherQuartz); - GTMaterials.CertusQuartz.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.CertusQuartz, GTMaterials.Quartzite, GTMaterials.CertusQuartz); - - // Change Beryllium to add Chemical Bath recipe and Thorium byproduct - GTMaterials.Beryllium.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.Emerald, GTMaterials.Emerald, GTMaterials.Thorium, GTMaterials.Thorium); - GTMaterials.Beryllium.getProperty(PropertyKey.ORE).setWashedIn(GTMaterials.SodiumPersulfate); - - // Remove old stone dusts - GTMaterials.GraniticMineralSand.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.get('tfg:igneous_felsic'), GTMaterials.Magnetite, GTMaterials.Magnetite); - GTMaterials.BasalticMineralSand.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.get('tfg:igneous_mafic'), GTMaterials.Magnetite, GTMaterials.Magnetite); - - // Other flags - GTMaterials.CertusQuartz.addFlags(GENERATE_ROD); - GTMaterials.NetherQuartz.addFlags(GENERATE_ROD); - - GTMaterials.Copper.addFlags(GENERATE_FRAME); - GTMaterials.BlackBronze.addFlags(GENERATE_FRAME); - GTMaterials.BismuthBronze.addFlags(GENERATE_FRAME); - GTMaterials.RhodiumPlatedPalladium.addFlags(GENERATE_FRAME); - - GTMaterials.Wood.addFlags(GENERATE_SMALL_GEAR); - GTMaterials.Brass.addFlags(GENERATE_SMALL_GEAR, GENERATE_RING); - GTMaterials.BlackBronze.addFlags(GENERATE_SMALL_GEAR, GENERATE_RING); - GTMaterials.BismuthBronze.addFlags(GENERATE_SMALL_GEAR, GENERATE_RING); - - GTMaterials.Nickel.addFlags(GENERATE_ROD, GENERATE_LONG_ROD); - GTMaterials.Zinc.addFlags(GENERATE_LONG_ROD); - GTMaterials.Bismuth.addFlags(GENERATE_LONG_ROD); - GTMaterials.BlackSteel.addFlags(GENERATE_LONG_ROD, GENERATE_BOLT_SCREW); - GTMaterials.BlueSteel.addFlags(GENERATE_LONG_ROD, GENERATE_BOLT_SCREW, GENERATE_SPRING, GENERATE_SMALL_GEAR, GENERATE_FOIL); - GTMaterials.RedSteel.addFlags(GENERATE_LONG_ROD, GENERATE_BOLT_SCREW, GENERATE_FOIL); - GTMaterials.WroughtIron.addFlags(GENERATE_ROTOR, GENERATE_SPRING, GENERATE_SMALL_GEAR); - - GTMaterials.Copper.addFlags(GENERATE_BOLT_SCREW); - GTMaterials.Duranium.addFlags(GENERATE_BOLT_SCREW); - - GTMaterials.Magnalium.addFlags(GENERATE_GEAR); - - GTMaterials.Cupronickel.addFlags(GENERATE_BOLT_SCREW, GENERATE_RING); - - GTMaterials.BlackBronze.addFlags(GENERATE_ROTOR) - GTMaterials.BismuthBronze.addFlags(GENERATE_ROTOR) - GTMaterials.Ultimet.addFlags(GENERATE_ROTOR) - GTMaterials.CobaltBrass.addFlags(GENERATE_ROTOR) - GTMaterials.Magnalium.addFlags(GENERATE_ROTOR) - GTMaterials.VanadiumSteel.addFlags(GENERATE_ROTOR) - - GTMaterials.HSLASteel.addFlags(GENERATE_BOLT_SCREW, GENERATE_DENSE) - - GTMaterials.Invar.addFlags(GENERATE_RING); - GTMaterials.Magnalium.addFlags(GENERATE_RING); - GTMaterials.TinAlloy.addFlags(GENERATE_RING); - GTMaterials.SterlingSilver.addFlags(GENERATE_RING); - - GTMaterials.Bismuth.addFlags(GENERATE_PLATE, GENERATE_ROD, GENERATE_BOLT_SCREW); - GTMaterials.IronMagnetic.addFlags(GENERATE_PLATE); - - GTMaterials.Silicon.addFlags(GENERATE_DENSE); - GTMaterials.RTMAlloy.addFlags(GENERATE_DENSE, GENERATE_SPRING); - GTMaterials.Lead.addFlags(GENERATE_DENSE); - - GTMaterials.Beryllium.addFlags(GENERATE_DENSE); - GTMaterials.MaragingSteel300.addFlags(GENERATE_DENSE); - - GTMaterials.Quartzite.addFlags(GENERATE_ROD); - - GTMaterials.TreatedWood.addFlags(GENERATE_LONG_ROD); - - GTMaterials.Cadmium.addFlags(GENERATE_PLATE); - GTMaterials.Cadmium.setProperty(PropertyKey.INGOT, new $INGOT_PROPERTY()); - - // Hide ore processing tab for plutonium - GTMaterials.Plutonium239.addFlags(GENERATE_ROD, GENERATE_LONG_ROD, NO_ORE_PROCESSING_TAB, NO_ORE_SMELTING) - GTMaterials.Thorium.addFlags(NO_ORE_SMELTING) - - // Unhiding elements - GTMaterials.Zirconium.setProperty(PropertyKey.DUST, new $DUST_PROPERTY()); - GTMaterials.Zirconium.setProperty(PropertyKey.INGOT, new $INGOT_PROPERTY()); - GTMaterials.Zirconium.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4200, $BLAST_PROPERTY.GasTier.MID, GTValues.VA[GTValues.EV], 1300, GTValues.VA[GTValues.HV], 14.7*20)); - GTMaterials.Zirconium.addFlags(GENERATE_FINE_WIRE, GENERATE_PLATE, GENERATE_DENSE, NO_ORE_SMELTING); - - // Tools - GTMaterials.Stone.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(1.2, 1.0, 8, 1, [ - GTToolType.AXE, - GTToolType.HARD_HAMMER, - GTToolType.HOE, - GTToolType.KNIFE, - GTToolType.SHOVEL - ]).build()); - - GTMaterials.Copper.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(2.0, 1.5, 132, 2, metalTooling).build()); - GTMaterials.BismuthBronze.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(2.7, 2.0, 188, 2, metalTooling.concat(GTToolType.MORTAR)).build()); - GTMaterials.BlackBronze.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(3.1, 2.0, 194, 2, metalTooling.concat(GTToolType.MORTAR)).build()); - GTMaterials.BlackSteel.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(6.5, 4.5, 1228, 3, metalTooling).build()); - // Cast iron tools don't make sense but gregtech shits itself if they're missing, - // so I'm just giving them terrible terrible stats - GTMaterials.Iron.getProperties().removeProperty(PropertyKey.TOOL); - GTMaterials.Iron.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(2.5, 1.0, 20, 2, [GTToolType.PICKAXE]).build()); - // Hide netherite too - GTMaterials.Netherite.getProperties().removeProperty(PropertyKey.TOOL); - - for (let material of GTCEuAPI.materialManager.getRegisteredMaterials()) { - let toolProperty = material.getProperty(PropertyKey.TOOL); - if (toolProperty === null) - continue; - - toolProperty.setDurability(toolProperty.getDurability() * 6); - } - - // Bismuth item pipe - 1/4 as good as tin - GTMaterials.Bismuth.setProperty(PropertyKey.ITEM_PIPE, new $ITEM_PIPE_PROPERTY(16384, 0.125)); - // Bis bronze fluid pipe - same stats as bronze - GTMaterials.BismuthBronze.getProperties().removeProperty(PropertyKey.BLAST); - GTMaterials.BismuthBronze.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1696, 20, true, false, false, false)); - GTMaterials.BlackBronze.getProperties().removeProperty(PropertyKey.BLAST); - GTMaterials.BlackBronze.getProperties().removeProperty(PropertyKey.ITEM_PIPE); - GTMaterials.BlackBronze.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1696, 20, true, false, false, false)); - // Rose Gold & Sterling Silver - GTMaterials.RoseGold.getProperties().removeProperty(PropertyKey.BLAST); - GTMaterials.SterlingSilver.getProperties().removeProperty(PropertyKey.BLAST); - // Red steel fluid pipe - same flow rate as aluminium, bad heat tolerance (same as PE) but can do cryo - GTMaterials.RedSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(370, 75, true, false, true, false)); - // Blue steel fluid pipe - same flow rate as aluminium, same temp tolerance as tungsten - GTMaterials.BlueSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(4618, 75, true, false, false, false)); - // Ostrum fluid pipe - same flow rate as titanium, higher temp range - GTMaterials.get('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false)); - - // int is how fast the condition progresses (default 1.0) - // bool is whether or not the condition applies to anything made with the material, other than dusts (default false) - GTMaterials.Realgar.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.ARSENICOSIS, 1, false)); - GTMaterials.Cobaltite.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.ARSENICOSIS, 1, false)); - GTMaterials.Galena.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.WEAK_POISON, 1, false)); - GTMaterials.Chromite.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.IRRITANT, 1, false)); - GTMaterials.Thorium.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.ANY, $TFGT_MEDICAL_CONDITIONS.RADIOACTIVE, 1, true)); - - // This contains hazardous elements so GT tags it as hazardous automatically - GTMaterials.get('ostrum').getProperties().removeProperty(PropertyKey.HAZARD); - GTMaterials.get('ostrum_iodide').getProperties().removeProperty(PropertyKey.HAZARD); - // Superconductors being radioactive at EV is a little evil - GTMaterials.UraniumTriplatinum.getProperties().removeProperty(PropertyKey.HAZARD); - - // Make these the lowest tier of EBF instead - GTMaterials.BlackSteel.getProperty(PropertyKey.BLAST).setBlastTemperature(1000) - GTMaterials.RedSteel.getProperty(PropertyKey.BLAST).setBlastTemperature(1000) - GTMaterials.BlueSteel.getProperty(PropertyKey.BLAST).setBlastTemperature(1000) - - // BLAST property - let zirconium_diboride = TFGHelpers.getMaterial('zirconium_diboride'); - zirconium_diboride.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4500, "high", GTValues.VA[GTValues.EV], 2700, GTValues.VA[GTValues.HV], 12.5*20)); - - // Remove properties - GTMaterials.Glass.getProperties().removeProperty(PropertyKey.GEM) - GTMaterials.Thorium.getProperties().removeProperty(PropertyKey.INGOT) - GTMaterials.Thorium.getProperties().removeProperty(PropertyKey.FLUID) - GTMaterials.Plutonium239.getProperties().removeProperty(PropertyKey.ORE) - - // Color Adjustments - GTMaterials.BismuthBronze.setMaterialARGB(0x5A966E) - GTMaterials.BismuthBronze.setMaterialSecondaryARGB(0x203E2A) - GTMaterials.BlackBronze.setMaterialARGB(0x9D789D) - GTMaterials.BlackBronze.setMaterialSecondaryARGB(0x5B425B) - GTMaterials.Steel.setMaterialARGB(0x9AA9AB) - GTMaterials.SteelMagnetic.setMaterialARGB(0x9AA9AB) - GTMaterials.RedSteel.setMaterialARGB(0xDE7B80) - GTMaterials.RedSteel.setMaterialSecondaryARGB(0xE12323) - GTMaterials.BlueSteel.setMaterialARGB(0xA0B6EC) - GTMaterials.BlueSteel.setMaterialSecondaryARGB(0x2B5CD8) - GTMaterials.Bismuth.setMaterialARGB(0x66847E) - GTMaterials.Bismuth.setMaterialSecondaryARGB(0x25465B) - GTMaterials.Iron.setMaterialARGB(0x503d32) - GTMaterials.Iron.setMaterialSecondaryARGB(0x131212) - GTMaterials.IronMagnetic.setMaterialARGB(0x503d32) - GTMaterials.IronMagnetic.setMaterialSecondaryARGB(0x131212) - GTMaterials.Zinc.setMaterialARGB(0xd6ffdc) - GTMaterials.Zinc.setMaterialSecondaryARGB(0xA3BE9E) - GTMaterials.Graphite.setMaterialARGB(0x889BA8) - GTMaterials.Graphite.setMaterialSecondaryARGB(0x30383E) - GTMaterials.Amethyst.setMaterialARGB(0xCC9EF0) - GTMaterials.Amethyst.setMaterialSecondaryARGB(0x6F4AB3) - GTMaterials.Cobalt.setMaterialARGB(0xC9E4FB) - GTMaterials.Cobalt.setMaterialSecondaryARGB(0x1D2688) - GTMaterials.CertusQuartz.setMaterialARGB(0xB8D8FC) - GTMaterials.CertusQuartz.setMaterialSecondaryARGB(0xADCCEF) - GTMaterials.Vanadium.setMaterialARGB(0xA7AAC6) - GTMaterials.Vanadium.setMaterialSecondaryARGB(0xC4EFE6) - GTMaterials.Brass.setMaterialSecondaryARGB(0x791905) - GTMaterials.Aluminium.setMaterialARGB(0xb6e5ff) - GTMaterials.Aluminium.setMaterialSecondaryARGB(0x7ca29b) - GTMaterials.Titanium.setMaterialARGB(0xe8b1fa) - GTMaterials.Titanium.setMaterialSecondaryARGB(0xd8d5d9) - GTMaterials.TungstenSteel.setMaterialARGB(0xadb8df) - GTMaterials.TungstenSteel.setMaterialSecondaryARGB(0x03192f) - GTMaterials.RoseGold.setMaterialARGB(0xFCE4D8) - GTMaterials.RoseGold.setMaterialSecondaryARGB(0xAB675A) - GTMaterials.Platinum.setMaterialARGB(0xccdff5) - GTMaterials.Platinum.setMaterialSecondaryARGB(0x59563a) - GTMaterials.Nickel.setMaterialARGB(0xfff4ba) - GTMaterials.Nickel.setMaterialSecondaryARGB(0x8d8d71) - GTMaterials.Thorium.setMaterialARGB(0xc898a0) - GTMaterials.Thorium.setMaterialSecondaryARGB(0xad6d9c) - GTMaterials.GraniteRed.setMaterialARGB(0x974B3C) - GTMaterials.GraniteRed.setMaterialSecondaryARGB(0x632117) - GTMaterials.RhodiumPlatedPalladium.setMaterialARGB(0xFFC2EC) - GTMaterials.Rhenium.setMaterialARGB(0x8cb07f) - GTMaterials.Rhenium.setMaterialSecondaryARGB(0x9ccbd6) - GTMaterials.Diamond.setMaterialARGB(0x4AEDD9) - GTMaterials.Diamond.setMaterialSecondaryARGB(0x1AAAA7) - GTMaterials.Boron.setMaterialARGB(0x75BD8D) - GTMaterials.Boron.setMaterialSecondaryARGB(0x013A15) - GTMaterials.Americium.setMaterialARGB(0x284D7B) - - // Fluids - global.MINECRAFT_DYE_NAMES.forEach(colorName => { - let material = GTMaterials.get(`gtceu:${colorName}_dye`); - let property = material.getProperty(PropertyKey.FLUID); - property.getStorage().store($FluidStorageKeys.LIQUID, () => Fluid.of(`tfc:${colorName}_dye`).fluid, null); - }); - - let lyeFluidProperty = new $FLUID_PROPERTY(); - lyeFluidProperty.getStorage().store($FluidStorageKeys.LIQUID, () => Fluid.of('tfc:lye').fluid, null); - GTMaterials.SodiumHydroxide.setProperty(PropertyKey.FLUID, lyeFluidProperty); - - // Components and formulas - GTMaterials.CertusQuartz.setComponents('1x unknown', '1x silicon', '2x oxygen') - GTMaterials.Glowstone.setComponents('1x gold', '1x redstone') - GTMaterials.Thorium.setFormula('ThO2') - GTMaterials.Americium.setFormula('Am²⁴³') - GTMaterials.Caesium.setFormula('Cs¹³³') -} \ No newline at end of file diff --git a/kubejs/startup_scripts/gtmoderntuilities/constants.js b/kubejs/startup_scripts/gtmoderntuilities/constants.js new file mode 100644 index 000000000..d6a331d1a --- /dev/null +++ b/kubejs/startup_scripts/gtmoderntuilities/constants.js @@ -0,0 +1,18 @@ +// priority: 0 +"use strict"; + +global.GTM_UTILITIES_DISABLED_ITEMS = [ + + 'gtmutils:sterile_cleaning_maintenance_hatch', + 'gtmutils:pterb_machine', + 'gtmutils:expanded_me_pattern_buffer', + 'gtmutils:expanded_me_pattern_buffer_proxy', + 'gtmutils:me_tag_stocking_input_bus', + 'gtmutils:me_enlarged_stocking_input_bus', + 'gtmutils:me_enlarged_tag_stocking_input_bus', + 'gtmutils:me_tag_stocking_input_hatch', + 'gtmutils:me_enlarged_stocking_input_hatch', + 'gtmutils:me_enlarged_tag_stocking_input_hatch', + 'gtmutils:quantum_coolant_bucket', + 'gtmutils:quantum_coolant', +] \ No newline at end of file diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index f3be25bfb..5845c3782 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -59,8 +59,8 @@ GTCEuStartupEvents.registry('gtceu:material_icon_set', event => { }) GTCEuStartupEvents.materialModification(event => { - registerGTCEuMaterialModification(event) registerGreateMaterialModification(event) + registerTFGMaterialModification(event) }) GTCEuStartupEvents.registry('gtceu:dimension_marker', event => { diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index d6e802c48..2a9b506d7 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -18,7 +18,6 @@ const registerTFGBlocks = (event) => { registerTFGNuclearBlocks(event) - // Temporary, remove in 0.12 event.create('gtceu:ostrum_linear_accelerator') .tagBlock('gtceu:mineable/pickaxe_or_wrench') diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 8b141984f..c0fb2ee45 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -33,6 +33,9 @@ const registerTFGItems = (event) => { event.create('tfg:cryo_fluix_pearl') event.create('tfg:uv_led') event.create('tfg:smd_uv_led') + event.create('tfg:blue_alloy_desh_foil') + event.create('tfg:chorus_ceramic_insulation') + event.create('tfg:fired_chorus_ceramic_insulation') // Molds global.TFG_EXTRUDER_MOLDS.forEach(id => event.create(id)) @@ -59,4 +62,25 @@ const registerTFGItems = (event) => { event.create('tfg:loaded_resin') .texture('tfg:item/btx/loaded_resin') + + // Add New Ceramic Circuit Board + + event.create('tfg:mo_activated_sic_substrate') + .texture('tfg:item/mo_activated_sic_substrate') + + event.create('tfg:copper_bonded_al2o3_pcb') + .texture('tfg:item/copper_bonded_al2o3_pcb') + + event.create('tfg:chromium_bonded_beo_pcb') + .texture('tfg:item/chromium_bonded_beo_pcb') + + // Add New Lenses Support + + event.create('tfg:optical_borosilicate_blank') + .texture('tfg:item/optical_borosilicate_blank') + + event.create('tfg:worked_optical_borosilicate_blank') + .texture('tfg:item/worked_optical_borosilicate_blank') + .tag('tfg:precision_fabricator_dipped_items') + } diff --git a/kubejs/startup_scripts/tfg/mars/materials.mars.js b/kubejs/startup_scripts/tfg/mars/materials.mars.js index dc5a98a6b..a62065e10 100644 --- a/kubejs/startup_scripts/tfg/mars/materials.mars.js +++ b/kubejs/startup_scripts/tfg/mars/materials.mars.js @@ -31,7 +31,7 @@ function registerTFGMarsMaterials(event) { // Atmosphere event.create('tfg:mars_air') - .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(208)) + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(208)) .color('0xD08957') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) .components('94x carbon_dioxide', '3x nitrogen', '2x argon', '1x oxygen') @@ -44,7 +44,7 @@ function registerTFGMarsMaterials(event) { .components('80x carbon_dioxide', '7x nitrogen', '5x argon', '3x oxygen', '1x neon', '1x krypton', '1x xenon') // Mars sap - + event.create('tfg:crimsene') .liquid(new GTFluidBuilder().state(GTFluidState.LIQUID).temperature(220)) .gem() @@ -93,20 +93,28 @@ function registerTFGMarsMaterials(event) { .blastTemp(3700, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV]) .flags( GTMaterialFlags.DISABLE_DECOMPOSITION, - GTMaterialFlags.FORCE_GENERATE_BLOCK, + GTMaterialFlags.FORCE_GENERATE_BLOCK, GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_FRAME, + GTMaterialFlags.GENERATE_FOIL, GTMaterialFlags.DISABLE_ALLOY_BLAST - ) + ) + + + // Alloys event.create("ostrum_iodide") .ingot() .liquid() .components('2x ostrum', 'iodine') - .blastTemp(3700, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.IV], (20*120)) + .blastTemp(3700, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.IV], (20 * 120)) .iconSet(GTMaterialIconSet.getByName('cereal_box')) - .flags(GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_FOIL) + .flags( + GTMaterialFlags.GENERATE_GEAR, + GTMaterialFlags.GENERATE_FOIL, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_LONG_ROD) .color(0xc696f2) .secondaryColor(0x9b99ff) } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/material_modification.js b/kubejs/startup_scripts/tfg/material_modification.js new file mode 100644 index 000000000..3e2d913fd --- /dev/null +++ b/kubejs/startup_scripts/tfg/material_modification.js @@ -0,0 +1,13 @@ +// priority: 0 +"use strict"; + +const registerTFGMaterialModification = (event) => { + registerTFCMaterialModification(event); + registerTFGFlagsMaterialModification(event); + registerTFGOresMaterialModification(event); + registerTFGPropertyMaterialModification(event); + registerTFGToolMaterialModification(event); + registerTFGFluidMaterialModification(event); + registerTFGComponentMaterialModification(event); + registerTFGColorsMaterialModification(event); +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index 44285ba28..592f0a880 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -42,28 +42,19 @@ const registerTFGMaterials = (event) => { registerTFGEuropaMaterials(event); registerTFGAquaponicsMaterials(event); + registerTFGEtchingMaterials(event); + registerTFGBakeliteMaterials(event); + registerTFGRefrigerantMaterials(event); + registerTFGCoilMaterials(event); + registerTFGBouleMaterials(event); + registerTFGRotorMaterials(event); + registerTFGSolderMaterials(event) + registerTFGTungstenMaterials(event); + registerTFGZirconiumMaterials(event); + registerTFGAluminaMaterials(event) + registerTFGGemSlurryMaterials(event); + registerTFGMiscAlloyMaterials(event) - // Refrigerants - - event.create('tfg:chlorodifluoromethane') - .gas() - .components('1x carbon', '1x hydrogen', '1x chlorine', '2x fluorine') - .color(0x66ffa3) - - event.create('tfg:acetylene') - .gas() - .components('2x carbon', '2x hydrogen') - .color(0x1a1212) - - event.create('tfg:isobutane') - .gas() - .components('4x carbon', '10x hydrogen') - .color(0x7d0f00) - - event.create('tfg:1_1_1_2_tetrafluoroethane') - .gas() - .components('2x carbon', '2x hydrogen', '4x fluorine') - .color(0x46702e) // Crafting components @@ -74,105 +65,6 @@ const registerTFGMaterials = (event) => { .color(0xFFFFFF) .secondaryColor(0x67FFE6) .formula("(Al2Si2O5(OH)4)(BeK4N5)") - - // Bakelite - event.create('tfg:bakelite') - .polymer() - .fluid() - .color(0xF29104) - .secondaryColor(0xD96005) - .components('1x phenol', '1x formaldehyde') - .flags( - GTMaterialFlags.DISABLE_DECOMPOSITION, - GTMaterialFlags.NO_SMELTING, - GTMaterialFlags.GENERATE_PLATE, - GTMaterialFlags.GENERATE_FOIL - ) - - event.create('tfg:phenolic_resin') - .fluid() - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .components('1x phenol', '1x formaldehyde') - .color(0xFCD7A3) - - // Coils - - event.create('tfg:magnesium_hydroxide') - .dust() - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .components('1x magnesium', '2x hydroxide') - .color(0xC6E4FF) - - event.create('tfg:magnesia_refractory_brick') - .dust() - .ingot() - .iconSet(GTMaterialIconSet.ROUGH) - .flags(GTMaterialFlags.NO_SMELTING) - .color(0xA69D96) - - //#region Tungsten Line - - event.create('tfg:sodium_tungstate') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.BRIGHT) - .components('2x sodium','1x tungsten', '4x oxygen') - .color('0xdcf6f7') - - event.create('tfg:ammonium_tungstate') - .dust() - .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.DULL) - .components('10x ammonia', '2x hydrogen', '12x tungsten', '42x oxygen') - .color('0xfafafa') - - event.create('tfg:apt') - .gem() - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.FLINT) - .components('10x ammonia', '4x water', '2x hydrogen', '12x tungsten', '42x oxygen') - .color('0xaabdf0') - - event.create('tfg:tungsten_oxide') - .dust() - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .iconSet(GTMaterialIconSet.FLINT) - .components('1x tungsten', '3x oxygen') - .color('0xf0c851') - - // #endregion - - //#region New Alloy for Turbines - - event.create('tfg:tungsten_bismuth_oxide_composite') - .components('1x tungsten', '2x bismuth', '3x oxygen') - .color(0xf7cb48) - .secondaryColor(0xfffef0) - .iconSet(GTMaterialIconSet.getByName('tfc_cassiterite')) - .ingot() - .liquid() - .blastTemp(3700, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.IV], (20*120)) - .rotorStats(250, 90, 2 ,620) - .flags( - GTMaterialFlags.DISABLE_DECOMPOSITION, - GTMaterialFlags.GENERATE_PLATE, - GTMaterialFlags.GENERATE_ROD, - GTMaterialFlags.GENERATE_BOLT_SCREW, - GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, - GTMaterialFlags.GENERATE_FOIL, - GTMaterialFlags.GENERATE_FINE_WIRE - ) - .fluidPipeProperties(4250, 1700, true, false, false, false) - - // #endregion - - // #region conductor - event.create('tfg:thermally_conductive_fluid') - .liquid() - .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) - .components('7x gallium', '2x tin', '1x zinc') - .color('0x34cfeb') - // #endregion // #region holder materials // These allow us to give material components to non-material items @@ -193,64 +85,4 @@ const registerTFGMaterials = (event) => { .macerateInto('gtceu:polycaprolactam') .color(0x000000) // #endregion - - // #region Zirconium - event.create('tfg:zircon') - .gem() - .color(0xF1B6B0) - .secondaryColor(0x4BABC6) - .iconSet('gem_horizontal') - .components('1x zirconium', '1x silicon', '4x oxygen') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('tfg:zirconium_tetrachloride') - .dust() - .color(0xF1B6B0) - .secondaryColor(0x146946) - .iconSet('rough') - .components('1x zirconium', '4x chlorine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('tfg:silicon_tetrachloride') - .liquid() - .color(0x707078) - .secondaryColor(0x146946) - .components('1x silicon', '4x chlorine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('tfg:zirconium_bromide') - .dust() - .color(0xBA776F) - .secondaryColor(0x146985) - .iconSet('shiny') - .components('1x zirconium', '4x bromine') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - - event.create('tfg:zirconium_diboride') - .ingot() - .color(0xFADED2) - .secondaryColor(0x4FA883) - .iconSet('chonky') - .components('1x zirconium', '2x boron') - .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_FOIL) - - event.create('tfg:boron_carbide') - .ingot() - .iconSet('dull') - .color(0x42705D) - .components('4x boron', '1x carbon') - .blastTemp(3041, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.HV], 1500) - .flags(GTMaterialFlags.GENERATE_PLATE) - - // #endregion - - //#region Material for Coils - - event.create('tfg:nichromium_iodomethylate') - .liquid(new GTFluidBuilder().temperature(1818)) - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .components('4x nickel', '1x chromium', '1x carbon', '3x hydrogen', '1x iodine') - .color(0xe7a2fc) - - } diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.colors.js b/kubejs/startup_scripts/tfg/materials/material_modification.colors.js new file mode 100644 index 000000000..0504a99fa --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.colors.js @@ -0,0 +1,63 @@ +// priority: 0 +"use strict"; + +function registerTFGColorsMaterialModification(event) { + GTMaterials.BismuthBronze.setMaterialARGB(0x5A966E) + GTMaterials.BismuthBronze.setMaterialSecondaryARGB(0x203E2A) + GTMaterials.BlackBronze.setMaterialARGB(0x9D789D) + GTMaterials.BlackBronze.setMaterialSecondaryARGB(0x5B425B) + GTMaterials.Steel.setMaterialARGB(0x9AA9AB) + GTMaterials.SteelMagnetic.setMaterialARGB(0x9AA9AB) + GTMaterials.RedSteel.setMaterialARGB(0xDE7B80) + GTMaterials.RedSteel.setMaterialSecondaryARGB(0xE12323) + GTMaterials.BlueSteel.setMaterialARGB(0xA0B6EC) + GTMaterials.BlueSteel.setMaterialSecondaryARGB(0x2B5CD8) + GTMaterials.Bismuth.setMaterialARGB(0x66847E) + GTMaterials.Bismuth.setMaterialSecondaryARGB(0x25465B) + GTMaterials.Iron.setMaterialARGB(0x503d32) + GTMaterials.Iron.setMaterialSecondaryARGB(0x131212) + GTMaterials.IronMagnetic.setMaterialARGB(0x503d32) + GTMaterials.IronMagnetic.setMaterialSecondaryARGB(0x131212) + GTMaterials.Zinc.setMaterialARGB(0xd6ffdc) + GTMaterials.Zinc.setMaterialSecondaryARGB(0xA3BE9E) + GTMaterials.Graphite.setMaterialARGB(0x889BA8) + GTMaterials.Graphite.setMaterialSecondaryARGB(0x30383E) + GTMaterials.Amethyst.setMaterialARGB(0xCC9EF0) + GTMaterials.Amethyst.setMaterialSecondaryARGB(0x6F4AB3) + GTMaterials.Cobalt.setMaterialARGB(0xC9E4FB) + GTMaterials.Cobalt.setMaterialSecondaryARGB(0x1D2688) + GTMaterials.CertusQuartz.setMaterialARGB(0xB8D8FC) + GTMaterials.CertusQuartz.setMaterialSecondaryARGB(0xADCCEF) + GTMaterials.Vanadium.setMaterialARGB(0xA7AAC6) + GTMaterials.Vanadium.setMaterialSecondaryARGB(0xC4EFE6) + GTMaterials.Brass.setMaterialSecondaryARGB(0x791905) + GTMaterials.Aluminium.setMaterialARGB(0xb6e5ff) + GTMaterials.Aluminium.setMaterialSecondaryARGB(0x7ca29b) + GTMaterials.Titanium.setMaterialARGB(0xe8b1fa) + GTMaterials.Titanium.setMaterialSecondaryARGB(0xd8d5d9) + GTMaterials.TungstenSteel.setMaterialARGB(0xadb8df) + GTMaterials.TungstenSteel.setMaterialSecondaryARGB(0x03192f) + GTMaterials.RoseGold.setMaterialARGB(0xFCE4D8) + GTMaterials.RoseGold.setMaterialSecondaryARGB(0xAB675A) + GTMaterials.Platinum.setMaterialARGB(0xccdff5) + GTMaterials.Platinum.setMaterialSecondaryARGB(0x59563a) + GTMaterials.Nickel.setMaterialARGB(0xfff4ba) + GTMaterials.Nickel.setMaterialSecondaryARGB(0x8d8d71) + GTMaterials.Thorium.setMaterialARGB(0xc898a0) + GTMaterials.Thorium.setMaterialSecondaryARGB(0xad6d9c) + GTMaterials.GraniteRed.setMaterialARGB(0x974B3C) + GTMaterials.GraniteRed.setMaterialSecondaryARGB(0x632117) + GTMaterials.RhodiumPlatedPalladium.setMaterialARGB(0xFFC2EC) + GTMaterials.Rhenium.setMaterialARGB(0x8cb07f) + GTMaterials.Rhenium.setMaterialSecondaryARGB(0x9ccbd6) + GTMaterials.Diamond.setMaterialARGB(0x4AEDD9) + GTMaterials.Diamond.setMaterialSecondaryARGB(0x1AAAA7) + GTMaterials.Boron.setMaterialARGB(0x75BD8D) + GTMaterials.Boron.setMaterialSecondaryARGB(0x013A15) + GTMaterials.Americium.setMaterialARGB(0x284D7B) + GTMaterials.SterlingSilver.setMaterialARGB(0xFFE8E4) + GTMaterials.SterlingSilver.setMaterialSecondaryARGB(0xFFDECB) + GTMaterials.RoseGold.setMaterialARGB(0xF7D4BD) + GTMaterials.RoseGold.setMaterialSecondaryARGB(0xE7945C) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.components.js b/kubejs/startup_scripts/tfg/materials/material_modification.components.js new file mode 100644 index 000000000..879e59cda --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.components.js @@ -0,0 +1,10 @@ +// priority: 0 +"use strict"; + +function registerTFGComponentMaterialModification(event) { + GTMaterials.CertusQuartz.setComponents('1x unknown', '1x silicon', '2x oxygen') + GTMaterials.Glowstone.setComponents('1x gold', '1x redstone') + GTMaterials.Thorium.setFormula('ThO2') + GTMaterials.Americium.setFormula('Am²⁴³') + GTMaterials.Caesium.setFormula('Cs¹³³') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.flags.js b/kubejs/startup_scripts/tfg/materials/material_modification.flags.js new file mode 100644 index 000000000..e6355f959 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.flags.js @@ -0,0 +1,199 @@ +// priority: 0 +"use strict"; + +function registerTFGFlagsMaterialModification(event) { + const $MATERIAL_FLAGS = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.info.MaterialFlags') + + const { + HAS_TFC_TOOL, // used to generate new TFC items like javelins + HAS_GT_TOOL, // does not generate items, just TFC recipes for GT tools + HAS_TFC_ARMOR, + HAS_TFC_UTILITY, + CAN_BE_UNMOLDED, + GENERATE_DOUBLE_INGOTS, + HAS_SMALL_TFC_ORE, + GENERATE_DUSTY_ORES, + } = TFGMaterialFlags + + const { + GENERATE_ROD, + GENERATE_LONG_ROD, + GENERATE_BOLT_SCREW, + GENERATE_ROTOR, + GENERATE_SPRING, + GENERATE_SMALL_GEAR, + GENERATE_GEAR, + GENERATE_FRAME, + GENERATE_PLATE, + GENERATE_DENSE, + GENERATE_RING, + GENERATE_FOIL, + GENERATE_FINE_WIRE, + NO_ORE_PROCESSING_TAB, + NO_ORE_SMELTING, + DISABLE_DECOMPOSITION + } = $MATERIAL_FLAGS + + GTMaterials.Clay.addFlags(DISABLE_DECOMPOSITION); + GTMaterials.Brick.addFlags(DISABLE_DECOMPOSITION); + + + // Generate Dusty Ores for Infinite Ores + GTMaterials.Goethite.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Diamond.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.CertusQuartz.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Gold.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Cassiterite.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Pitchblende.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Silver.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.TricalciumPhosphate.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Bauxite.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Lead.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Beryllium.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Thorium.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Uraninite.addFlags(GENERATE_DUSTY_ORES); + GTMaterials.Hematite.addFlags(GENERATE_DUSTY_ORES); + + // 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); + GTMaterials.Iron.addFlags(CAN_BE_UNMOLDED); + + // TFC tool tiers + 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); + GTMaterials.RedSteel.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); + GTMaterials.BlueSteel.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY); + + // TFC ores + GTMaterials.Bismuth.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Cassiterite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Garnierite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Hematite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Limonite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Magnetite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Malachite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Sphalerite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Tetrahedrite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Chromite.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Copper.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Gold.addFlags(HAS_SMALL_TFC_ORE); + GTMaterials.Silver.addFlags(HAS_SMALL_TFC_ORE); + + // Other materials that are compatible with TFC + GTMaterials.Iron.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.Gold.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.Bismuth.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.Brass.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.Nickel.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.RoseGold.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.Silver.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.Tin.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + GTMaterials.Zinc.addFlags(GENERATE_DOUBLE_INGOTS, GENERATE_BOLT_SCREW, HAS_TFC_UTILITY); + GTMaterials.SterlingSilver.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_UTILITY); + + 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); + GTMaterials.Potin.addFlags(GENERATE_DOUBLE_INGOTS); + GTMaterials.Cobalt.addFlags(GENERATE_DOUBLE_INGOTS); + GTMaterials.CobaltBrass.addFlags(GENERATE_DOUBLE_INGOTS); + + // Superconductors + GTMaterials.ManganesePhosphide.addFlags(GENERATE_FINE_WIRE); + GTMaterials.MagnesiumDiboride.addFlags(GENERATE_FINE_WIRE); + GTMaterials.MercuryBariumCalciumCuprate.addFlags(GENERATE_FINE_WIRE); + GTMaterials.UraniumTriplatinum.addFlags(GENERATE_FINE_WIRE); + GTMaterials.SamariumIronArsenicOxide.addFlags(GENERATE_FINE_WIRE); + //GTMaterials.IndiumTinBariumTitaniumCuprate.addFlags(); + //GTMaterials.UraniumRhodiumDinaquadide.addFlags(); + //GTMaterials.EnrichedNaquadahTriniumEuropiumDuranide.addFlags(); + GTMaterials.RutheniumTriniumAmericiumNeutronate.addFlags(GENERATE_FINE_WIRE); + + + // Other flags + GTMaterials.CertusQuartz.addFlags(GENERATE_ROD); + GTMaterials.NetherQuartz.addFlags(GENERATE_ROD); + + GTMaterials.Copper.addFlags(GENERATE_FRAME); + GTMaterials.BlackBronze.addFlags(GENERATE_FRAME); + GTMaterials.BismuthBronze.addFlags(GENERATE_FRAME); + GTMaterials.RhodiumPlatedPalladium.addFlags(GENERATE_FRAME); + + GTMaterials.Wood.addFlags(GENERATE_SMALL_GEAR); + GTMaterials.Brass.addFlags(GENERATE_SMALL_GEAR, GENERATE_RING); + GTMaterials.BlackBronze.addFlags(GENERATE_SMALL_GEAR, GENERATE_RING); + GTMaterials.BismuthBronze.addFlags(GENERATE_SMALL_GEAR, GENERATE_RING); + + GTMaterials.Nickel.addFlags(GENERATE_ROD, GENERATE_LONG_ROD); + GTMaterials.Zinc.addFlags(GENERATE_LONG_ROD); + GTMaterials.Bismuth.addFlags(GENERATE_LONG_ROD); + GTMaterials.BlackSteel.addFlags(GENERATE_LONG_ROD, GENERATE_BOLT_SCREW); + GTMaterials.BlueSteel.addFlags(GENERATE_LONG_ROD, GENERATE_BOLT_SCREW, GENERATE_SPRING, GENERATE_SMALL_GEAR, GENERATE_FOIL); + GTMaterials.RedSteel.addFlags(GENERATE_LONG_ROD, GENERATE_BOLT_SCREW, GENERATE_FOIL); + GTMaterials.WroughtIron.addFlags(GENERATE_ROTOR, GENERATE_SPRING, GENERATE_SMALL_GEAR); + + GTMaterials.Copper.addFlags(GENERATE_BOLT_SCREW); + GTMaterials.Duranium.addFlags(GENERATE_BOLT_SCREW); + + GTMaterials.Magnalium.addFlags(GENERATE_GEAR); + + GTMaterials.Cupronickel.addFlags(GENERATE_BOLT_SCREW, GENERATE_RING); + + GTMaterials.BlueAlloy.addFlags(GENERATE_FOIL); + + GTMaterials.BlackBronze.addFlags(GENERATE_ROTOR) + GTMaterials.BismuthBronze.addFlags(GENERATE_ROTOR) + GTMaterials.Ultimet.addFlags(GENERATE_ROTOR) + GTMaterials.CobaltBrass.addFlags(GENERATE_ROTOR) + GTMaterials.Magnalium.addFlags(GENERATE_ROTOR) + GTMaterials.VanadiumSteel.addFlags(GENERATE_ROTOR) + + GTMaterials.HSLASteel.addFlags(GENERATE_BOLT_SCREW, GENERATE_DENSE) + + GTMaterials.Invar.addFlags(GENERATE_RING); + GTMaterials.Magnalium.addFlags(GENERATE_RING); + GTMaterials.TinAlloy.addFlags(GENERATE_RING); + GTMaterials.SterlingSilver.addFlags(GENERATE_RING); + + GTMaterials.Bismuth.addFlags(GENERATE_PLATE, GENERATE_ROD, GENERATE_BOLT_SCREW); + GTMaterials.IronMagnetic.addFlags(GENERATE_PLATE); + GTMaterials.Zirconium.addFlags(GENERATE_FINE_WIRE, GENERATE_PLATE, GENERATE_DENSE, NO_ORE_SMELTING); + + GTMaterials.Silicon.addFlags(GENERATE_DENSE); + GTMaterials.RTMAlloy.addFlags(GENERATE_DENSE, GENERATE_SPRING); + GTMaterials.Lead.addFlags(GENERATE_DENSE); + + GTMaterials.Beryllium.addFlags(GENERATE_DENSE); + GTMaterials.MaragingSteel300.addFlags(GENERATE_DENSE); + + GTMaterials.Quartzite.addFlags(GENERATE_ROD); + + GTMaterials.TreatedWood.addFlags(GENERATE_LONG_ROD); + + GTMaterials.Cadmium.addFlags(GENERATE_PLATE); + + // Hide ore processing tab for plutonium + GTMaterials.Plutonium239.addFlags(GENERATE_ROD, GENERATE_LONG_ROD, NO_ORE_PROCESSING_TAB, NO_ORE_SMELTING) + GTMaterials.Thorium.addFlags(NO_ORE_SMELTING) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.fluids.js b/kubejs/startup_scripts/tfg/materials/material_modification.fluids.js new file mode 100644 index 000000000..df7536e8f --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.fluids.js @@ -0,0 +1,17 @@ +// priority: 0 +"use strict"; + +function registerTFGFluidMaterialModification(event) { + const $FLUID_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidProperty'); + const $FluidStorageKeys = Java.loadClass('com.gregtechceu.gtceu.api.fluids.store.FluidStorageKeys'); + + global.MINECRAFT_DYE_NAMES.forEach(colorName => { + let material = GTMaterials.get(`gtceu:${colorName}_dye`); + let property = material.getProperty(PropertyKey.FLUID); + property.getStorage().store($FluidStorageKeys.LIQUID, () => Fluid.of(`tfc:${colorName}_dye`).fluid, null); + }); + + let lyeFluidProperty = new $FLUID_PROPERTY(); + lyeFluidProperty.getStorage().store($FluidStorageKeys.LIQUID, () => Fluid.of('tfc:lye').fluid, null); + GTMaterials.SodiumHydroxide.setProperty(PropertyKey.FLUID, lyeFluidProperty); +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.ores.js b/kubejs/startup_scripts/tfg/materials/material_modification.ores.js new file mode 100644 index 000000000..d5bf55481 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.ores.js @@ -0,0 +1,33 @@ +// priority: 0 +"use strict"; + +function registerTFGOresMaterialModification(event) { + const $ORE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.OreProperty'); + const $GreateMaterials = Java.loadClass("electrolyte.greate.registry.GreateMaterials"); + + // Ores + GTMaterials.Bismuth.setProperty(PropertyKey.ORE, new $ORE_PROPERTY()); + GTMaterials.Borax.setProperty(PropertyKey.ORE, new $ORE_PROPERTY()); + + let rose_quartz = $GreateMaterials.RoseQuartz; + rose_quartz.setProperty(PropertyKey.ORE, new $ORE_PROPERTY()); + rose_quartz.getProperty(PropertyKey.ORE).setOreByProducts(rose_quartz, GTMaterials.Redstone, rose_quartz); + + // Change byproducts so you can't get certus from normal quartzite + GTMaterials.Quartzite.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.NetherQuartz, GTMaterials.Barite, GTMaterials.NetherQuartz); + GTMaterials.CertusQuartz.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.CertusQuartz, GTMaterials.Quartzite, GTMaterials.CertusQuartz); + + // Change Beryllium to add Chemical Bath recipe and Thorium byproduct + GTMaterials.Beryllium.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.Emerald, GTMaterials.Emerald, GTMaterials.Thorium, GTMaterials.Thorium); + GTMaterials.Beryllium.getProperty(PropertyKey.ORE).setWashedIn(GTMaterials.SodiumPersulfate); + + // Change any Ores that have Rutile + GTMaterials.Ilmenite.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.Iron, GTMaterials.Ilmenite, GTMaterials.IlmeniteSlag, GTMaterials.IlmeniteSlag); + GTMaterials.Aluminium.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.Bauxite, GTMaterials.Bauxite, GTMaterials.Ilmenite, GTMaterials.IlmeniteSlag); + GTMaterials.Bauxite.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.Grossular, GTMaterials.IlmeniteSlag, GTMaterials.Gallium, GTMaterials.Gallium); + + // Remove old stone dusts + GTMaterials.GraniticMineralSand.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.get('tfg:igneous_felsic'), GTMaterials.Magnetite, GTMaterials.Magnetite); + GTMaterials.BasalticMineralSand.getProperty(PropertyKey.ORE).setOreByProducts(GTMaterials.get('tfg:igneous_mafic'), GTMaterials.Magnetite, GTMaterials.Magnetite); + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.properties.js b/kubejs/startup_scripts/tfg/materials/material_modification.properties.js new file mode 100644 index 000000000..95986afe7 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.properties.js @@ -0,0 +1,65 @@ +// priority: 0 +"use strict"; + +function registerTFGPropertyMaterialModification(event) { + const $DUST_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.DustProperty'); + const $INGOT_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.IngotProperty'); + const $BLAST_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.BlastProperty'); + const $ITEM_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.ItemPipeProperties'); + const $FLUID_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties'); + const $HAZARD_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.HazardProperty'); + const $TFGT_MEDICAL_CONDITIONS = Java.loadClass('su.terrafirmagreg.core.common.data.tfgt.TFGTMedicalConditions'); + + + // Unhiding elements + GTMaterials.Zirconium.setProperty(PropertyKey.DUST, new $DUST_PROPERTY()); + GTMaterials.Zirconium.setProperty(PropertyKey.INGOT, new $INGOT_PROPERTY()); + GTMaterials.Zirconium.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4200, $BLAST_PROPERTY.GasTier.MID, GTValues.VA[GTValues.EV], 1300, GTValues.VA[GTValues.HV], 14.7 * 20)); + + GTMaterials.Cadmium.setProperty(PropertyKey.INGOT, new $INGOT_PROPERTY()); + + GTMaterials.Thallium.setProperty(PropertyKey.DUST, new $DUST_PROPERTY()); + GTMaterials.Thallium.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CHEMICAL_BURNS, 1, false)); + + // Bismuth item pipe - 1/4 as good as tin + GTMaterials.Bismuth.setProperty(PropertyKey.ITEM_PIPE, new $ITEM_PIPE_PROPERTY(16384, 0.125)); + // Bis bronze fluid pipe - same stats as bronze + GTMaterials.BismuthBronze.getProperties().removeProperty(PropertyKey.BLAST); + GTMaterials.BlackBronze.getProperties().removeProperty(PropertyKey.BLAST); + GTMaterials.BlackBronze.getProperties().removeProperty(PropertyKey.ITEM_PIPE); + // Rose Gold & Sterling Silver + GTMaterials.RoseGold.getProperties().removeProperty(PropertyKey.BLAST); + GTMaterials.SterlingSilver.getProperties().removeProperty(PropertyKey.BLAST); + + // int is how fast the condition progresses (default 1.0) + // bool is whether or not the condition applies to anything made with the material, other than dusts (default false) + GTMaterials.Realgar.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.ARSENICOSIS, 1, false)); + GTMaterials.Cobaltite.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.ARSENICOSIS, 1, false)); + GTMaterials.Galena.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.INHALATION, GTMedicalConditions.WEAK_POISON, 1, false)); + GTMaterials.Chromite.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.IRRITANT, 1, false)); + GTMaterials.Thorium.setProperty(PropertyKey.HAZARD, new $HAZARD_PROPERTY($HAZARD_PROPERTY.HazardTrigger.ANY, $TFGT_MEDICAL_CONDITIONS.RADIOACTIVE, 1, true)); + + // This contains hazardous elements so GT tags it as hazardous automatically + GTMaterials.get('ostrum').getProperties().removeProperty(PropertyKey.HAZARD); + GTMaterials.get('ostrum_iodide').getProperties().removeProperty(PropertyKey.HAZARD); + // Superconductors being radioactive at EV is a little evil + GTMaterials.UraniumTriplatinum.getProperties().removeProperty(PropertyKey.HAZARD); + + // Make these the lowest tier of EBF instead + GTMaterials.BlackSteel.getProperty(PropertyKey.BLAST).setBlastTemperature(1000) + GTMaterials.RedSteel.getProperty(PropertyKey.BLAST).setBlastTemperature(1000) + GTMaterials.BlueSteel.getProperty(PropertyKey.BLAST).setBlastTemperature(1000) + + // BLAST property + let zirconium_diboride = TFGHelpers.getMaterial('zirconium_diboride'); + zirconium_diboride.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(4500, $BLAST_PROPERTY.GasTier.HIGH, GTValues.VA[GTValues.EV], 2700, GTValues.VA[GTValues.HV], 12.5 * 20)); + + GTMaterials.Titanium.getProperties().removeProperty(PropertyKey.BLAST); + GTMaterials.Titanium.setProperty(PropertyKey.BLAST, new $BLAST_PROPERTY(2750, $BLAST_PROPERTY.GasTier.MID, GTValues.VA[GTValues.HV], 20 * 60, GTValues.VA[GTValues.HV], 7.2 * 20)); + + // Remove properties + GTMaterials.Glass.getProperties().removeProperty(PropertyKey.GEM) + GTMaterials.Thorium.getProperties().removeProperty(PropertyKey.INGOT) + GTMaterials.Thorium.getProperties().removeProperty(PropertyKey.FLUID) + GTMaterials.Plutonium239.getProperties().removeProperty(PropertyKey.ORE) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.tfc.js b/kubejs/startup_scripts/tfg/materials/material_modification.tfc.js new file mode 100644 index 000000000..8851eab96 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.tfc.js @@ -0,0 +1,76 @@ +// priority: 0 +"use strict"; + +function registerTFCMaterialModification(event) { + + const $TFC_PROPERTY = Java.loadClass('su.terrafirmagreg.core.compat.gtceu.properties.TFCProperty') + + + // TFC_PROPERTY = (forging temp, welding temp, melt temp, material, tier, percent of material) + // OR = (forging temp, welding temp, melt temp, tier) + // + // If registering a new material that you want to melt into a liquid in a vessel etc, + // make sure you add it to registerGTCEUMetals()! + + GTMaterials.Copper.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(648, 864, 1080, 1)); + GTMaterials.BismuthBronze.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(591, 788, 985, 2)); + GTMaterials.Bronze.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(570, 760, 950, 2)); + GTMaterials.BlackBronze.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(642, 856, 1070, 2)); + GTMaterials.WroughtIron.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3)); + GTMaterials.Steel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 4)); + GTMaterials.BlackSteel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(891, 1188, 1485, 5)); + GTMaterials.BlueSteel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); + GTMaterials.RedSteel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); + GTMaterials.get('tfg:weak_blue_steel').setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); + GTMaterials.get('tfg:weak_red_steel').setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(924, 1232, 1540, 6)); + + GTMaterials.Gold.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(636, 848, 1060, 1)); + GTMaterials.Bismuth.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(162, 216, 270, 1)); + GTMaterials.Brass.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(558, 744, 930, 2)); + GTMaterials.Nickel.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(872, 1162, 1453, 1)); + GTMaterials.RoseGold.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(576, 768, 960, 1)); + GTMaterials.Silver.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(577, 769, 961, 1)); + GTMaterials.Tin.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 230, 1)); + GTMaterials.Zinc.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(252, 336, 420, 1)); + GTMaterials.SterlingSilver.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(570, 760, 950, 1)); + GTMaterials.Iron.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3)); + + GTMaterials.Hematite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); + GTMaterials.Limonite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); + GTMaterials.Magnetite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); + GTMaterials.Pyrite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); + GTMaterials.Goethite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 90)); + GTMaterials.BasalticMineralSand.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 80)); + GTMaterials.GraniticMineralSand.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 80)); + GTMaterials.VanadiumMagnetite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(921, 1228, 1535, GTMaterials.Iron, 3, 80)); + + GTMaterials.Malachite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 90)); + GTMaterials.Tetrahedrite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 90)); + GTMaterials.Chalcopyrite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 85)); + GTMaterials.Chalcocite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 95)); + GTMaterials.Bornite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1080, GTMaterials.Copper, 1, 90)); + + GTMaterials.Cassiterite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(648, 864, 230, GTMaterials.Tin, 1, 100)); + GTMaterials.CassiteriteSand.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 230, GTMaterials.Tin, 1, 80)); + GTMaterials.Sphalerite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 420, GTMaterials.Zinc, 1, 90)); + GTMaterials.Garnierite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1453, GTMaterials.Nickel, 1, 100)); + GTMaterials.Pentlandite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(138, 184, 1453, GTMaterials.Nickel, 1, 85)); + + GTMaterials.Redstone.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(240, 320, 460, 1)); + 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(330 * 0.6, 330 * 0.8, 330, 2)); + GTMaterials.Galena.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(330 * 0.6, 330 * 0.8, 330, GTMaterials.Lead, 2, 85)); + GTMaterials.Invar.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1494 * 0.6, 1494 * 0.8, 1494, 3)); + GTMaterials.Potin.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(807 * 0.6, 807 * 0.8, 807, 2)); + GTMaterials.Cobalt.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1495 * 0.6, 1495 * 0.8, 1495, 3)); + GTMaterials.Cobaltite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1495 * 0.6, 1495 * 0.8, 1495, GTMaterials.Cobalt, 3, 85)); + GTMaterials.CobaltBrass.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1060 * 0.6, 1060 * 0.8, 1060, 3)); + let AlSi = GTMaterials.get('aluminium_silicate') + AlSi.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, 1)) + GTMaterials.Kyanite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 95)) + GTMaterials.Mica.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 40)) + GTMaterials.Spodumene.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 30)) + GTMaterials.Pollucite.setProperty(TFGPropertyKey.TFC_PROPERTY, new $TFC_PROPERTY(1540, 1540, 1540, AlSi, 1, 25)) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/material_modification.tools.js b/kubejs/startup_scripts/tfg/materials/material_modification.tools.js new file mode 100644 index 000000000..7485be13b --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/material_modification.tools.js @@ -0,0 +1,434 @@ +// priority: 0 +"use strict"; + +function registerTFGToolMaterialModification(event) { + const $ROTOR_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.RotorProperty') + const $FLUID_PIPE_PROPERTY = Java.loadClass('com.gregtechceu.gtceu.api.data.chemical.material.properties.FluidPipeProperties'); + + const { + GENERATE_BUZZSAW_BLADE, + GENERATE_SCREWDRIVER_HEAD, + GENERATE_DRILL_HEAD, + GENERATE_CHAINSAW_HEAD, + GENERATE_WRENCH_HEAD, + GENERATE_WIRE_CUTTER_HEAD + } = TFGMaterialFlags; + + const $GTToolType = Java.loadClass('com.gregtechceu.gtceu.api.item.tool.GTToolType') + const $toolTypes = $GTToolType.getTypes() + + const ULVTools = [ + GTToolType.AXE, + GTToolType.PICKAXE, + GTToolType.HARD_HAMMER, + GTToolType.BUTCHERY_KNIFE, + GTToolType.SWORD, + GTToolType.FILE, + GTToolType.SAW, + GTToolType.SHOVEL, + GTToolType.SHOVEL, + GTToolType.SPADE, + GTToolType.MINING_HAMMER, + GTToolType.HOE, + GTToolType.KNIFE, + GTToolType.SCYTHE, + GTToolType.WIRE_CUTTER, + GTToolType.SCREWDRIVER, + GTToolType.WRENCH, + GTToolType.CROWBAR + ] + + const LVTools = [ + GTToolType.AXE, + GTToolType.PICKAXE, + GTToolType.HARD_HAMMER, + GTToolType.BUTCHERY_KNIFE, + GTToolType.SWORD, + GTToolType.FILE, + GTToolType.SAW, + GTToolType.SHOVEL, + GTToolType.SPADE, + GTToolType.MINING_HAMMER, + GTToolType.HOE, + GTToolType.KNIFE, + GTToolType.BUZZSAW, + GTToolType.SCYTHE, + GTToolType.WIRE_CUTTER, + GTToolType.WIRE_CUTTER_LV, + GTToolType.DRILL_LV, + GTToolType.SCREWDRIVER, + GTToolType.SCREWDRIVER_LV, + GTToolType.CHAINSAW_LV, + GTToolType.WRENCH, + GTToolType.WRENCH_LV, + GTToolType.CROWBAR + ] + + const MVTools = [ + GTToolType.HARD_HAMMER, + GTToolType.BUTCHERY_KNIFE, + GTToolType.SWORD, + GTToolType.FILE, + GTToolType.HOE, + GTToolType.KNIFE, + $toolTypes.get("mv_buzzsaw"), + GTToolType.SCYTHE, + $toolTypes.get("mv_wirecutter"), + GTToolType.DRILL_MV, + $toolTypes.get("mv_screwdriver"), + $toolTypes.get("mv_chainsaw"), + $toolTypes.get("mv_wrench"), + GTToolType.CROWBAR + ] + + const HVTools = [ + GTToolType.HARD_HAMMER, + GTToolType.BUTCHERY_KNIFE, + GTToolType.SWORD, + GTToolType.FILE, + GTToolType.HOE, + GTToolType.KNIFE, + $toolTypes.get("hv_buzzsaw"), + GTToolType.SCYTHE, + GTToolType.WIRE_CUTTER_HV, + GTToolType.DRILL_HV, + GTToolType.SCREWDRIVER_HV, + GTToolType.CHAINSAW_HV, + GTToolType.WRENCH_HV, + GTToolType.CROWBAR + ] + + const EVTools = [ + GTToolType.HARD_HAMMER, + GTToolType.BUTCHERY_KNIFE, + GTToolType.SWORD, + GTToolType.FILE, + GTToolType.HOE, + GTToolType.KNIFE, + $toolTypes.get("ev_buzzsaw"), + GTToolType.SCYTHE, + $toolTypes.get("ev_wirecutter"), + GTToolType.DRILL_EV, + $toolTypes.get("ev_screwdriver"), + $toolTypes.get("ev_chainsaw"), + $toolTypes.get("ev_wrench"), + GTToolType.CROWBAR + ] + + const IVTools = [ + GTToolType.HARD_HAMMER, + GTToolType.BUTCHERY_KNIFE, + GTToolType.SWORD, + GTToolType.FILE, + GTToolType.HOE, + GTToolType.KNIFE, + $toolTypes.get("iv_buzzsaw"), + GTToolType.SCYTHE, + GTToolType.WIRE_CUTTER_IV, + GTToolType.DRILL_IV, + GTToolType.SCREWDRIVER_IV, + GTToolType.CHAINSAW_IV, + GTToolType.WRENCH_IV, + GTToolType.CROWBAR + ] + + const ZPMTools = [ + GTToolType.HARD_HAMMER, + GTToolType.BUTCHERY_KNIFE, + GTToolType.SWORD, + GTToolType.FILE, + GTToolType.HOE, + GTToolType.KNIFE, + $toolTypes.get("zpm_buzzsaw"), + GTToolType.SCYTHE, + $toolTypes.get("zpm_wirecutter"), + $toolTypes.get("zpm_drill"), + $toolTypes.get("zpm_screwdriver"), + $toolTypes.get("zpm_chainsaw"), + $toolTypes.get("zpm_wrench"), + GTToolType.CROWBAR, + //Hidden + GTToolType.PICKAXE + ] + + //#region Tools + + const toRemove = [ + // Remove all the tools we don't want anymore + GTMaterials.CobaltBrass, + GTMaterials.Diamond, + GTMaterials.Invar, + GTMaterials.RoseGold, + GTMaterials.SterlingSilver, + GTMaterials.Aluminium, + //GTMaterials.Polyethylene, + //GTMaterials.Polybenzimidazole, + //GTMaterials.Polytetrafluoroethylene, + GTMaterials.Titanium, + GTMaterials.TungstenSteel, + GTMaterials.Netherite, + GTMaterials.StainlessSteel, + GTMaterials.Darmstadtium, + GTMaterials.RhodiumPlatedPalladium, + // Remove all the tools we want to rebalance + GTMaterials.DamascusSteel, + GTMaterials.Bronze, + GTMaterials.WroughtIron, + GTMaterials.Steel, + GTMaterials.BlueSteel, + GTMaterials.RedSteel, + GTMaterials.VanadiumSteel, + GTMaterials.Ultimet, + GTMaterials.TungstenCarbide, + GTMaterials.HSSE, + GTMaterials.Duranium, + GTMaterials.NaquadahAlloy, + GTMaterials.Neutronium + ]; + + for (let mat of toRemove) { + if (mat.hasProperty(PropertyKey.TOOL)) { + mat.removeProperty(PropertyKey.TOOL); + } + } + + // Add buzzsaw blades + GTMaterials.CobaltBrass.addFlags(GENERATE_BUZZSAW_BLADE); + GTMaterials.WroughtIron.addFlags(GENERATE_BUZZSAW_BLADE); + GTMaterials.Steel.addFlags(GENERATE_BUZZSAW_BLADE); + + // Cast iron tools don't make sense but gregtech shits itself if they're missing, + // so I'm just giving them terrible terrible stats + GTMaterials.Iron.removeProperty(PropertyKey.TOOL); + GTMaterials.Iron.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(2.5, 1.0, 20, 2, [GTToolType.PICKAXE]).build()); + + // Balance Tools + + GTMaterials.Stone.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(1.2, 1.0, 8, 1, [ + GTToolType.AXE, + GTToolType.HARD_HAMMER, + GTToolType.HOE, + GTToolType.KNIFE, + GTToolType.SHOVEL + ]).build()); + + GTMaterials.Flint.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(1.8, 2, 54, 1, [ + GTToolType.AXE, + GTToolType.HOE, + GTToolType.KNIFE, + GTToolType.SHOVEL, + GTToolType.PICKAXE, + GTToolType.SWORD + ]).build()); + + // ULV + + GTMaterials.Copper.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD); + GTMaterials.Copper.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(4.0, 3.5, 132, 2, ULVTools).build()); + + GTMaterials.BismuthBronze.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD); + GTMaterials.BismuthBronze.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(4.7, 4.0, 195, 2, ULVTools.concat(GTToolType.MORTAR)).build()); + + GTMaterials.BlackBronze.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD); + GTMaterials.BlackBronze.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(5, 5.0, 188, 2, ULVTools.concat(GTToolType.MORTAR)).build()); + + GTMaterials.Bronze.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD); + GTMaterials.Bronze.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(4.5, 4, 212, 2, ULVTools.concat(GTToolType.MORTAR)).build()); + + GTMaterials.WroughtIron.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD); + GTMaterials.WroughtIron.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(5, 4, 384, 2, ULVTools.concat(GTToolType.MORTAR)).build()); + + GTMaterials.Steel.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD); + GTMaterials.Steel.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(6, 5, 512, 3, ULVTools.concat(GTToolType.MORTAR)).build()); + + GTMaterials.DamascusSteel.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(8, 6, 1024, 3, ULVTools.concat(GTToolType.MORTAR)).build()); + + GTMaterials.BlackSteel.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD); + GTMaterials.BlackSteel.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(6.5, 5.5, 612, 3, ULVTools.concat(GTToolType.MORTAR)).build()); + + // LV + + GTMaterials.BlueSteel.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.BlueSteel.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(9, 5, 804, 3, LVTools).build()); + + GTMaterials.RedSteel.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.RedSteel.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(6, 7.5, 1560, 3, LVTools).build()); + + // MV + + // Diamond Tipped Tools - 11 - 6 - 1024 - 3 + + GTMaterials.VanadiumSteel.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.VanadiumSteel.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(5, 8, 2048, 3, MVTools).build()); + TFGHelpers.getMaterial('diamond_tipped_mo_50_re').addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD) + TFGHelpers.getMaterial('diamond_tipped_mo_50_re').setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(11, 6, 1024, 3, MVTools).build()); + + // HV + + GTMaterials.Ultimet.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.Ultimet.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(16, 9, 1678, 4, HVTools).build()); + + TFGHelpers.getMaterial('boron_carbide').addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + TFGHelpers.getMaterial('boron_carbide').setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(5, 11, 3678, 3, HVTools).build()); + + // EV + + GTMaterials.TungstenCarbide.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.TungstenCarbide.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(34, 12, 1024, 4, EVTools).build()); + + TFGHelpers.getMaterial('ostrum_iodide').addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + TFGHelpers.getMaterial('ostrum_iodide').setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(20, 10, 3096, 4, EVTools).build()); + + // IV + + GTMaterials.HSSE.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.HSSE.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(44, 13, 4012, 3, IVTools).build()); + + // LuV + + GTMaterials.Duranium.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.Duranium.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(54, 14, 8192, 5, IVTools).build()); + + GTMaterials.NaquadahAlloy.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.NaquadahAlloy.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(64, 15, 8192, 5, IVTools).build()); + + // UV + + GTMaterials.Neutronium.addFlags(GENERATE_SCREWDRIVER_HEAD, GENERATE_WRENCH_HEAD, GENERATE_WIRE_CUTTER_HEAD, GENERATE_BUZZSAW_BLADE, GENERATE_DRILL_HEAD, GENERATE_CHAINSAW_HEAD); + GTMaterials.Neutronium.setProperty(PropertyKey.TOOL, ToolProperty.Builder.of(180.0, 100.0, 65535, 6, ZPMTools).build()); + + //#endregion + + //#region Turbine + + // Remove all the Turbine Rotors we don't want anymore + const noRotorMaterials = [ + GTMaterials.Bronze, + GTMaterials.BlackBronze, + GTMaterials.CobaltBrass, + GTMaterials.Manganese, + GTMaterials.Molybdenum, + GTMaterials.RoseGold, + GTMaterials.Iron, + GTMaterials.BismuthBronze, + GTMaterials.Brass, + GTMaterials.Chromium, + GTMaterials.Invar, + GTMaterials.Steel, + GTMaterials.Magnalium, + GTMaterials.WroughtIron, + GTMaterials.Aluminium, + GTMaterials.Neodymium, + GTMaterials.VanadiumSteel, + GTMaterials.StainlessSteel, + GTMaterials.Titanium, + GTMaterials.Tungsten, + GTMaterials.TungstenSteel, + GTMaterials.TungstenCarbide, + GTMaterials.HSSG, + GTMaterials.HSSE, + GTMaterials.Iridium, + GTMaterials.RhodiumPlatedPalladium, + GTMaterials.Naquadah, + GTMaterials.Osmium, + ]; + for (let mat of noRotorMaterials) { + if (mat.hasProperty(PropertyKey.ROTOR)) { + mat.removeProperty(PropertyKey.ROTOR); + } + }; + + // Balance Turbine Rotors Stats + + const BalanceRotorMaterials = [ + GTMaterials.SterlingSilver, + GTMaterials.Ultimet, + GTMaterials.HSSS, + GTMaterials.Osmiridium, + GTMaterials.NaquadahAlloy, + GTMaterials.Tritanium + ]; + for (let mat of BalanceRotorMaterials) { + if (mat.hasProperty(PropertyKey.ROTOR)) { + mat.removeProperty(PropertyKey.ROTOR); + } + }; + + GTMaterials.SterlingSilver.setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(100, 180, 1, 147)); + GTMaterials.Ultimet.setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(140, 140, 4, 786)); + GTMaterials.HSSS.setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(280, 200, 7, 1986)); + GTMaterials.Osmiridium.setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(320, 200, 12, 2364)); + GTMaterials.NaquadahAlloy.setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(370, 180, 13, 3840)); + GTMaterials.Tritanium.setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(380, 240, 15, 7680)); + + // New Materials - Require MaterialFlags (Plates, Bolt/Screwdriver) + + TFGHelpers.getMaterial('silicon_carbide_silicon_carbide').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(200, 50, 2, 238)); + GTMaterials.get('rocket_alloy_t1').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(170, 105, 3, 1215)); + TFGHelpers.getMaterial('inconel_718').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(130, 180, 4, 1536)); + TFGHelpers.getMaterial('tungsten_bismuth_oxide_composite').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(270, 80, 7, 465)); + GTMaterials.get('rocket_alloy_t2').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(210, 150, 5, 2484)); + TFGHelpers.getMaterial('mo_si_b').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(270, 180, 6, 1610)); + //GTMaterials.getMaterial('rocket_alloy_t3').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(300, 160, 8, 3840)); + //TFGHelpers.getMaterial('ysz').setProperty(PropertyKey.ROTOR, new $ROTOR_PROPERTY(270, 220, 10, 5310)); + + //#endregion + + //#region Fluid Pipes + + // Old Pipe we keep so we don't break worlds + GTMaterials.RedSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(370, 75, true, false, true, false)); + GTMaterials.BlueSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(4618, 75, true, false, false, false)); + GTMaterials.get('ostrum').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3700, 150, true, false, true, false)); + GTMaterials.BlackBronze.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1696, 20, true, false, false, false)); + GTMaterials.BismuthBronze.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1696, 20, true, false, false, false)); + TFGHelpers.getMaterial('tungsten_bismuth_oxide_composite').setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(4250, 1700, true, false, false, false)); + + // Balance Fluid Pipe Stats + + const BalanceFluidPipeMaterials = [ + GTMaterials.Wood, + GTMaterials.Copper, + GTMaterials.Bronze, + GTMaterials.TinAlloy, + GTMaterials.Gold, + GTMaterials.Potin, + GTMaterials.Steel, + GTMaterials.Polyethylene, + GTMaterials.StainlessSteel, + GTMaterials.Aluminium, + GTMaterials.Polytetrafluoroethylene, + GTMaterials.Titanium, + GTMaterials.TungstenSteel, + GTMaterials.Polybenzimidazole, + GTMaterials.NiobiumTitanium, + GTMaterials.Naquadah, + GTMaterials.Iridium, + GTMaterials.Duranium + ]; + for (let mat of BalanceFluidPipeMaterials) { + if (mat.hasProperty(PropertyKey.FLUID_PIPE)) { + mat.removeProperty(PropertyKey.FLUID_PIPE); + } + }; + + GTMaterials.Wood.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(340, 10, false, false, false, false)); + GTMaterials.Copper.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1696, 12, true, false, false, false)); + GTMaterials.Bronze.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1696, 40, true, false, false, false)); + GTMaterials.TinAlloy.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1572, 40, true, false, false, false)); + GTMaterials.Gold.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1671, 50, true, true, false, false)); + GTMaterials.Potin.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1546, 80, true, false, false, false)); + GTMaterials.Steel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1855, 100, true, false, false, false)); + GTMaterials.Polyethylene.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(370, 120, true, false, false, false)); + GTMaterials.StainlessSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(2428, 150, true, true, true, false)); + GTMaterials.Aluminium.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1166, 200, true, false, false, false)); + GTMaterials.Polytetrafluoroethylene.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(600, 800, true, true, false, false)); + GTMaterials.Titanium.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3426, 1200, true, false, true, false)); + GTMaterials.TungstenSteel.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(5137, 1800, true, false, true, false)); + GTMaterials.Polybenzimidazole.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(1000, 2800, true, false, false, false)); + GTMaterials.NiobiumTitanium.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(7300, 1400, true, true, false, false)); + GTMaterials.Naquadah.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3776, 1600, true, false, true, true)); + GTMaterials.Iridium.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(3398, 2000, true, false, true, false)); + GTMaterials.Duranium.setProperty(PropertyKey.FLUID_PIPE, new $FLUID_PIPE_PROPERTY(9625, 4000, true, true, true, true)); + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.alumina.js b/kubejs/startup_scripts/tfg/materials/materials.alumina.js new file mode 100644 index 000000000..46cb718c2 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.alumina.js @@ -0,0 +1,41 @@ +// priority: 0 +"use strict"; + +function registerTFGAluminaMaterials(event) { + event.create('tfg:aluminium_sulfate') + .dust() + .color(0xfaf9c3) + .secondaryColor(0xfaf2f9) + .iconSet(GTMaterialIconSet.FINE) + .components('2x aluminium', '3x sulfate') + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:aluminium_hydroxide') + .dust() + .color(0xd3f3f5) + .secondaryColor(0xedf9fa) + .iconSet(GTMaterialIconSet.FINE) + .components('1x aluminium', '3x oxygen', '3x hydrogen') + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:sodium_sulfate') + .dust() + .color(0xfafaf7) + .secondaryColor(0xf7f7f2) + .iconSet(GTMaterialIconSet.BRIGHT) + .components('2x sodium', '1x sulfur', '4x oxygen') + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:alumina') + .dust() + .color(0xf7f7f2) + .secondaryColor(0xe8eafa) + .iconSet(GTMaterialIconSet.OPAL) + .components('2x aluminium', '3x oxygen') + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.bakelite.js b/kubejs/startup_scripts/tfg/materials/materials.bakelite.js new file mode 100644 index 000000000..5c6839a7e --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.bakelite.js @@ -0,0 +1,23 @@ +// priority: 0 +"use strict"; + +function registerTFGBakeliteMaterials(event) { + event.create('tfg:bakelite') + .polymer() + .fluid() + .color(0xF29104) + .secondaryColor(0xD96005) + .components('1x phenol', '1x formaldehyde') + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.NO_SMELTING, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_FOIL + ) + + event.create('tfg:phenolic_resin') + .fluid() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .components('1x phenol', '1x formaldehyde') + .color(0xFCD7A3) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.boules.js b/kubejs/startup_scripts/tfg/materials/materials.boules.js new file mode 100644 index 000000000..518cc7310 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.boules.js @@ -0,0 +1,42 @@ +// priority: 0 +"use strict"; + +function registerTFGBouleMaterials(event) { + + event.create('tfg:silane') + .color(0x8383AE) + .secondaryColor(0x707078) + .gas() + .components('4x hydrogen', '1x silicon') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:chlorosilane') + .color(0xD8CB70) + .secondaryColor(0x707078) + .gas(GTFluidBuilder().attribute(GTFluidAttributes.ACID)) + .components('3x hydrogen', '1x silicon', '1x chlorine') + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + + event.create('tfg:dichlorosilane') + .color(0xE7DE9E) + .secondaryColor(0x707078) + .gas(GTFluidBuilder().attribute(GTFluidAttributes.ACID)) + .components('2x hydrogen', '1x silicon', '2x chlorine') + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + + event.create('tfg:trichlorosilane') + .color(0xCCC592) + .secondaryColor(0x707078) + .liquid(GTFluidBuilder().attribute(GTFluidAttributes.ACID)) + .components('1x hydrogen', '1x silicon', '3x chlorine') + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + + event.create('tfg:polysilicon') + .color(0x8C8C94) + .secondaryColor(0x10293b) + .iconSet(GTMaterialIconSet.BRIGHT) + .liquid(new GTFluidBuilder().temperature(2273)) + .dust() + .components('1x silicon') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.coils.js b/kubejs/startup_scripts/tfg/materials/materials.coils.js new file mode 100644 index 000000000..f0d4bf3c6 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.coils.js @@ -0,0 +1,50 @@ +// priority: 0 +"use strict"; + +function registerTFGCoilMaterials(event) { + const $BlastProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.BlastProperty") + + // Cupronickel + + event.create('tfg:magnesium_hydroxide') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .components('1x magnesium', '2x hydroxide') + .color(0xC6E4FF) + + event.create('tfg:magnesia_refractory_brick') + .dust() + .ingot() + .iconSet(GTMaterialIconSet.ROUGH) + .flags(GTMaterialFlags.NO_SMELTING) + .color(0xA69D96) + + // Kanthal + + event.create('tfg:rough_silicon_carbide') + .color(0x95999e) + .secondaryColor(0x95999a) + .iconSet(GTMaterialIconSet.ROUGH) + .ingot() + .blastTemp(2341, $BlastProperty.GasTier.LOW, GTValues.VA[GTValues.HV], (20*95)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:silicon_carbide') + .color(0xdfe5ed) + .secondaryColor(0xdfe5aa) + .iconSet(GTMaterialIconSet.ROUGH) + .ingot() + .fluid() + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE, + ) + + // RTM + + event.create('tfg:nichromium_iodomethylate') + .liquid(new GTFluidBuilder().temperature(1818)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .components('4x nickel', '1x chromium', '1x carbon', '3x hydrogen', '1x iodine') + .color(0xe7a2fc) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.etching.js b/kubejs/startup_scripts/tfg/materials/materials.etching.js new file mode 100644 index 000000000..900864d5f --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.etching.js @@ -0,0 +1,69 @@ +// priority: 0 +"use strict"; + +const registerTFGEtchingMaterials = (event) => { + //#region Composition-only materials + event.create('tfg:mercury_nitrate') + .components('1x mercury', '1x nitrogen', '3x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:mercury_chloride') + .components('1x mercury', '1x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:mercury_tri_p_toluenesulfonate') + .components('1x mercury', '7x carbon', '7x hydrogen', '3x oxygen', '1x sulfur') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + //#endregion + //#region Redstone Etching Fluid + event.create('tfg:redstone_nitrate') + .dust() + .components('1x silicon', '5x pyrite', '1x ruby', '3x tfg:mercury_nitrate') + .iconSet(GTMaterialIconSet.FINE) + .color(0xEC0040) + .secondaryColor(0x73060A) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:redstone_chloride') + .liquid(new GTFluidBuilder().temperature(293)) + .components('1x silicon', '5x pyrite', '1x ruby', '3x tfg:mercury_chloride') + .color(0xA6080D) + .secondaryColor(0x73060A) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:redstone_tri_p_toluenesulfonate') + .liquid(new GTFluidBuilder().customStill().temperature(293)) + .components('1x silicon', '5x pyrite', '1x ruby', '3x tfg:mercury_tri_p_toluenesulfonate') + .color(0xA6080D) + .secondaryColor(0x73060A) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:sulfur_dichloride') + .liquid(new GTFluidBuilder().temperature(293)) + .components('1x sulfur', '2x chlorine') + .color(0xDEE01A) + .secondaryColor(0x5D5E0B) + + event.create('tfg:thionyl_chloride') + .liquid(new GTFluidBuilder().temperature(293)) + .components('1x sulfur', '1x oxygen', '2x chlorine') + .color(0xE4C117) + .secondaryColor(0x63540B) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:p_toluenesulfonic_acid') + .liquid(new GTFluidBuilder().temperature(293).attribute(GTFluidAttributes.ACID)) + .components('7x carbon', '8x hydrogen', '3x oxygen', '1x sulfur') + .color(0x872B0B) + .secondaryColor(0x501A06) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:sodium_nitrate') + .dust() + .components('1x sodium', '1x nitrogen', '3x oxygen') + .iconSet(GTMaterialIconSet.FINE) + .color(0xCBF7FF) + .secondaryColor(0xB7CFFF) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + //#endregion +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.gem_slurries.js b/kubejs/startup_scripts/tfg/materials/materials.gem_slurries.js new file mode 100644 index 000000000..ef40e78ae --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.gem_slurries.js @@ -0,0 +1,20 @@ +// priority: 0 +"use strict"; + +const registerTFGGemSlurryMaterials = (event) => { + + function createDirtySlurry(event, name, color, secondaryColor) { + event.create(`tfg:dirty_${name}_slurry`) + .liquid(new GTFluidBuilder().temperature(603)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(color) + .secondaryColor(secondaryColor); + } + + createDirtySlurry(event, 'emerald', 0x77a677, 0x74e374); // Green Lens + createDirtySlurry(event, 'sapphire', 0x8083a8, 0x6e77e0); // Blue Lens + createDirtySlurry(event, 'ruby', 0xe34f4f, 0x88080); // Red Lens + createDirtySlurry(event, 'diamond', 0x4fe3e1, 0x6e77e0); // Light Blue Lens + createDirtySlurry(event, 'apatite', 0x00FFFF, 0xFFFFFF); // Cyan Lens + createDirtySlurry(event, 'spessartine', 0xfaa805, 0xf7daa1); // Orange Lens +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.misc_alloys.js b/kubejs/startup_scripts/tfg/materials/materials.misc_alloys.js new file mode 100644 index 000000000..41c3a1517 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.misc_alloys.js @@ -0,0 +1,85 @@ +// priority: 0 +"use strict"; + +// Don't just use this file as a dumping ground! +// Only use it if there's truly nowhere else your material can go and there's only like one or two materials. +// Otherwise, make a dedicated file for it. +function registerTFGMiscAlloyMaterials(event) { + // EV New Material + + event.create('tfg:tungsten_bismuth_oxide_composite') + .components('1x tungsten', '2x bismuth', '3x oxygen') + .color(0xf7cb48) + .secondaryColor(0xfffef0) + .iconSet(GTMaterialIconSet.getByName('tfc_cassiterite')) + .ingot() + .liquid() + .blastTemp(3700, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.IV], (20*120)) + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_BOLT_SCREW, + GTMaterialFlags.EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, + GTMaterialFlags.GENERATE_FOIL, + GTMaterialFlags.GENERATE_FINE_WIRE + ) + + + // Material at HV used for Zirconium at IV + + event.create('tfg:boron_carbide') + .ingot() + .iconSet('dull') + .color(0x42705D) + .components('4x boron', '1x carbon') + .blastTemp(3041, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.HV], 1500) + .flags(GTMaterialFlags.GENERATE_PLATE) + + + // Material for MV + + event.create('tfg:rene_41') + .ingot() + .fluid() + .iconSet(GTMaterialIconSet.SHINY) + .color(0x6A6D73) + .secondaryColor(0x5A5148) + .components('5x nickel', '3x chromium', '2x cobalt', '1x molybdenum', '1x aluminium', '1x boron', '1x carbon') + .blastTemp(1780, $BlastProperty.GasTier.LOW, GTValues.VA[GTValues.MV], (20*75)) + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_FOIL, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_BOLT_SCREW, + GTMaterialFlags.GENERATE_RING, + GTMaterialFlags.GENERATE_LONG_ROD) + + // Material for HV + + event.create('tfg:mo_50_re') + .ingot() + .fluid() + .color(0x5a8c78) + .secondaryColor(0x94eb9f) + .components('1x molybdenum', '1x rhenium') + .iconSet(GTMaterialIconSet.getByName('chonky')) + .blastTemp(1231, $BlastProperty.GasTier.LOW, GTValues.VA[GTValues.MV], (20*95)) + .flags( + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_BOLT_SCREW, + GTMaterialFlags.GENERATE_FRAME) + + event.create('tfg:diamond_tipped_mo_50_re') + .ingot() + .components('1x tfg:mo_50_re', '1x carbon') + .color(0x5eab9b) + .secondaryColor(0x83decc) + .iconSet('chonky') + .flags( + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.DISABLE_DECOMPOSITION) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.power_rework.js b/kubejs/startup_scripts/tfg/materials/materials.power_rework.js similarity index 100% rename from kubejs/startup_scripts/tfg/materials.power_rework.js rename to kubejs/startup_scripts/tfg/materials/materials.power_rework.js diff --git a/kubejs/startup_scripts/tfg/materials/materials.refrigerants.js b/kubejs/startup_scripts/tfg/materials/materials.refrigerants.js new file mode 100644 index 000000000..0c0093877 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.refrigerants.js @@ -0,0 +1,25 @@ +// priority: 0 +"use strict"; + +function registerTFGRefrigerantMaterials(event) { + + event.create('tfg:chlorodifluoromethane') + .gas() + .components('1x carbon', '1x hydrogen', '1x chlorine', '2x fluorine') + .color(0x66ffa3) + + event.create('tfg:acetylene') + .gas() + .components('2x carbon', '2x hydrogen') + .color(0x1a1212) + + event.create('tfg:isobutane') + .gas() + .components('4x carbon', '10x hydrogen') + .color(0x7d0f00) + + event.create('tfg:1_1_1_2_tetrafluoroethane') + .gas() + .components('2x carbon', '2x hydrogen', '4x fluorine') + .color(0x46702e) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.rotors.js b/kubejs/startup_scripts/tfg/materials/materials.rotors.js new file mode 100644 index 000000000..e2541a527 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.rotors.js @@ -0,0 +1,169 @@ +// priority: 0 +"use strict"; + +function registerTFGRotorMaterials(event) { + const $BlastProperty = Java.loadClass("com.gregtechceu.gtceu.api.data.chemical.material.properties.BlastProperty") + + // Material at HV used for Exotic Rotor + + event.create('tfg:inconel_718') + .components('5x invar', '2x chromium', '2x molybdenum', '1x niobium', '1x aluminium', '1x titanium') + .color(0xfff870) + .secondaryColor(0xc8cdf7) + .iconSet(GTMaterialIconSet.METALLIC) + .ingot() + .blastTemp(2710, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV], (20*120)) + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_BOLT_SCREW) + + event.create('tfg:weak_inconel_718') + .components('5x invar', '2x chromium', '2x molybdenum', '1x niobium', '1x aluminium', '1x titanium') + .color(0x8f8c57) + .secondaryColor(0xc8cdf7) + .iconSet(GTMaterialIconSet.ROUGH) + .ingot() + .blastTemp(1210, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV], (20*120)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:homogenized_inconel_718') + .components('5x invar', '2x chromium', '2x molybdenum', '1x niobium', '1x aluminium', '1x titanium') + .color(0xdbd560) + .secondaryColor(0xc8cdf7) + .iconSet(GTMaterialIconSet.DULL) + .ingot() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + + // Material for Inconel Line at HV + + event.create('tfg:inert_furnace_atmosphere') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(3730)) + .components('2x nitrogen', '1x argon', '1x hydrogen') + .color(0xB8B6AD) + .secondaryColor(0x9A8C62) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:metal_desorption_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(1200)) + .components('2x hydrogen', '1x oxygen', '1x carbon_monoxide') + .color(0x7A7262) + .secondaryColor(0x5E4B32) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:reducing_process_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(1800)) + .components('3x hydrogen', '1x nitrogen', '1x carbon_monoxide') + .color(0x9AA0A6) + .secondaryColor(0x6B7075) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + // Material for Mo-Si-B + + event.create('tfg:argon_enriched_atmosphere') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(87)) + .color(0x7F9CBF) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:furnace_exhaust_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(1200)) + .color(0xAAAAAA) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:mo_si_b_off_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(1500)) + .color(0xC0B283) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:medium_temperature_off_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(800)) + .color(0xE0C080) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:hydroxide_decomposition_off_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(600)) + .color(0xA0C0FF) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:linac_activated_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(300)) + .color(0xFF4444) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:highly_active_off_gas') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(1300)) + .color(0xFFAA00) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:dirty_mo_si_b') + .color(0x77FF77) + .secondaryColor(0x77AAFF) + .iconSet(GTMaterialIconSet.ROUGH) + .dust() + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + + event.create('tfg:weak_mo_si_b') + .color(0xAAAAAA) + .secondaryColor(0x77AAFF) + .iconSet(GTMaterialIconSet.ROUGH) + .ingot() + .blastTemp(2710, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV], (20*120)) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:worked_mo_si_b') + .color(0x77AAFF) + .secondaryColor(0x77FF77) + .blastTemp(2710, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV], (20*120)) + .iconSet(GTMaterialIconSet.OPAL) + .ingot() + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.DISABLE_MATERIAL_RECIPES) + + event.create('tfg:homogenized_mo_si_b') + .color(0x88CCFF) + .secondaryColor(0x99FF88) + .iconSet(GTMaterialIconSet.FINE) + .blastTemp(2710, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV], (20*120)) + .ingot() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:activated_mo_si_b') + .color(0xFF4444) + .secondaryColor(0x88CCFF) + .iconSet(GTMaterialIconSet.RADIOACTIVE) + .ingot() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:mo_si_b') + .color(0x77AAFF) + .secondaryColor(0xCCCCCC) + .iconSet(GTMaterialIconSet.METALLIC) + .components('1x molybdenum', '1x silicon', '1x boron') + .ingot() + .blastTemp(2710, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.EV], (20*120)) + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_BOLT_SCREW) + + event.create('tfg:silicon_carbide_silicon_carbide') + .color(0x615c4f) + .secondaryColor(0x40403f) + .components('1x silicon', '1x carbon') + .iconSet(GTMaterialIconSet.NETHERSTAR) + .ingot() + .flags( + GTMaterialFlags.DISABLE_MATERIAL_RECIPES, + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_ROD, + GTMaterialFlags.GENERATE_BOLT_SCREW) + + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.solders.js b/kubejs/startup_scripts/tfg/materials/materials.solders.js new file mode 100644 index 000000000..70780f23d --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.solders.js @@ -0,0 +1,48 @@ +// priority: 0 +"use strict"; + +function registerTFGSolderMaterials(event) { + + event.create('tfg:woods_metal') + .dust() + .liquid(GTFluidBuilder().temperature(343).customStill()) + .ingot() + .color(0x65737C) + .components('4x bismuth', '2x lead', '1x tin', '1x cadmium') + .flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING) + .hazard(HazardProperty.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.POISON) + + event.create('tfg:bi_pb_sn_cd_in_tl') + .dust() + .liquid(GTFluidBuilder().temperature(314).customStill()) + .ingot() + .color(0x745252) + .components('8x bismuth', '4x lead', '2x tin', '3x indium', '2x cadmium', '1x thallium') + .flags(GTMaterialFlags.DECOMPOSITION_BY_CENTRIFUGING) + .hazard(HazardProperty.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CHEMICAL_BURNS) + + event.create('tfg:lorandite') + .dust() + .ore() + .color(0xC97523) + .secondaryColor(0xcf151b) + .components('1x thallium', '1x arsenic', '2x sulfur') + .addOreByproducts('pyrite', 'sulfur', 'stibnite', 'arsenic_trioxide') + .washedIn(GTMaterials.SodiumPersulfate) + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION, TFGMaterialFlags.GENERATE_DUSTY_ORES) + + event.create('tfg:thallium_sulfate') + .dust() + .color(0x6691AD) + .components('2x thallium', '1x sulfur', '4x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .hazard(HazardProperty.HazardTrigger.SKIN_CONTACT, GTMedicalConditions.CHEMICAL_BURNS) + + event.create('tfg:zinc_sulfate') + .dust() + .color(0x92B39F) + .components('1x zinc', '1x sulfur', '4x oxygen') + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.tungsten.js b/kubejs/startup_scripts/tfg/materials/materials.tungsten.js new file mode 100644 index 000000000..cf5c19649 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.tungsten.js @@ -0,0 +1,33 @@ +// priority: 0 +"use strict"; + +function registerTFGTungstenMaterials(event) { + + event.create('tfg:sodium_tungstate') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.BRIGHT) + .components('2x sodium', '1x tungsten', '4x oxygen') + .color('0xdcf6f7') + + event.create('tfg:ammonium_tungstate') + .dust() + .flags(GTMaterialFlags.DISABLE_MATERIAL_RECIPES, GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.DULL) + .components('10x ammonia', '2x hydrogen', '12x tungsten', '42x oxygen') + .color('0xfafafa') + + event.create('tfg:apt') + .gem() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.FLINT) + .components('10x ammonia', '4x water', '2x hydrogen', '12x tungsten', '42x oxygen') + .color('0xaabdf0') + + event.create('tfg:tungsten_oxide') + .dust() + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .iconSet(GTMaterialIconSet.FLINT) + .components('1x tungsten', '3x oxygen') + .color('0xf0c851') +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials/materials.zirconium.js b/kubejs/startup_scripts/tfg/materials/materials.zirconium.js new file mode 100644 index 000000000..bc2b07687 --- /dev/null +++ b/kubejs/startup_scripts/tfg/materials/materials.zirconium.js @@ -0,0 +1,45 @@ +// priority: 0 +"use strict"; + +function registerTFGZirconiumMaterials(event) { + + event.create('tfg:zircon') + .gem() + .color(0xF1B6B0) + .secondaryColor(0x4BABC6) + .iconSet('gem_horizontal') + .components('1x zirconium', '1x silicon', '4x oxygen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:zirconium_tetrachloride') + .dust() + .color(0xF1B6B0) + .secondaryColor(0x146946) + .iconSet('rough') + .components('1x zirconium', '4x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:silicon_tetrachloride') + .liquid() + .color(0x707078) + .secondaryColor(0x146946) + .components('1x silicon', '4x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:zirconium_bromide') + .dust() + .color(0xBA776F) + .secondaryColor(0x146985) + .iconSet('shiny') + .components('1x zirconium', '4x bromine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + + event.create('tfg:zirconium_diboride') + .ingot() + .color(0xFADED2) + .secondaryColor(0x4FA883) + .iconSet('chonky') + .components('1x zirconium', '2x boron') + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_FOIL) + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/moon/materials.moon.js b/kubejs/startup_scripts/tfg/moon/materials.moon.js index 366be5cc7..67b9f8414 100644 --- a/kubejs/startup_scripts/tfg/moon/materials.moon.js +++ b/kubejs/startup_scripts/tfg/moon/materials.moon.js @@ -70,30 +70,33 @@ function registerTFGMoonMaterials(event) { event.create('armalcolite') .gem(2) - .components('1x magnesium', '1x rutile', '1x ilmenite') + .components('1x magnesium', '1x ilmenite', '2x oxygen') .color(0x443333) .secondaryColor(0x5e2c21) .iconSet(GTMaterialIconSet.getByName('tfc_emerald')) .ore() - .addOreByproducts('rutile', 'rutile', 'ilmenite') + .addOreByproducts('ilmenite', 'magnesium', 'ilmenite') event.create('desh') - .components('2x olivine', '1x rutile', '4x nitrogen') + .components('2x olivine', '1x ilmenite', '4x nitrogen') .color(0xF39A4C) .secondaryColor(0xF35A6C) .iconSet(GTMaterialIconSet.getByName('tfc_hematite')) .ore() - .addOreByproducts('olivine', 'rutile', 'rutile') + .addOreByproducts('olivine', 'ilmenite', 'iron', 'rhenium') + .washedIn(GTMaterials.SodiumPersulfate) .ingot() .liquid() - .blastTemp(2800, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.HV]) + .blastTemp(2212, $BlastProperty.GasTier.MID, GTValues.VA[GTValues.HV]) .flags( GTMaterialFlags.FORCE_GENERATE_BLOCK, - GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_FOIL, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_FRAME, + GTMaterialFlags.GENERATE_FOIL, GTMaterialFlags.DISABLE_ALLOY_BLAST ) } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js b/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js index 9e50bf968..38af65e7c 100644 --- a/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js +++ b/kubejs/startup_scripts/tfg/nuclear/materials.nuclear.js @@ -216,7 +216,7 @@ const registerTFGNuclearMaterials = (event) => { .components('1x boron', '3x chlorine') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) .color(0xb3fcb9) - //.secondaryColor(0x9FAFB2) + //.secondaryColor(0x9FAFB2) event.create('tfg:enriched_boron_thrichloride') .gas(new GTFluidBuilder().state(GTFluidState.GAS).attribute(GTFluidAttributes.ACID).temperature(480)) @@ -347,7 +347,7 @@ const registerTFGNuclearMaterials = (event) => { .radioactiveHazard(10000000) //#endregion - + //#region Epoxidized Isosorbide Linolenate event.create('tfg:glucose') .dust() @@ -392,12 +392,12 @@ const registerTFGNuclearMaterials = (event) => { .components('42x carbon', '66x hydrogen', '12x oxygen') .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) .color(0xAB2748) - + //#endregion //#region Isotopic Solvent - // Organic Stabilizer + // Organic Stabilizer event.create('tfg:organic_stabilizer') .dust() .components('31x carbon', '46x hydrogen', '3x oxygen', '1x nitrogen', '1x chlorine') @@ -524,24 +524,29 @@ const registerTFGNuclearMaterials = (event) => { .liquid(new GTFluidBuilder().customStill().temperature(300)) .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) .color(0xfc7303) - .secondaryColor(0xfcf403) - + .secondaryColor(0xfcf403) + // Conductor + event.create('tfg:thermally_conductive_fluid') + .liquid() + .flags(GTMaterialFlags.DECOMPOSITION_BY_ELECTROLYZING) + .components('7x gallium', '2x tin', '1x zinc') + .color('0x34cfeb') }; - //#region Fuel Pellet +//#region Fuel Pellet - /* - Adding the Fuel Rod, the textures are applied through a model.json - Durability - Number of rod unused for now - %Heat - In ReactorCurve getHeating returns fuelHeat * 200.0d * throttle and getCooling returns _state.Heat() * (coolantConversion + 0.01). - Where coolantConversion is 1.00 if enough coolant is present. Solving that equation for a steady-state: heating + cooling = 0. - When throttle=coolantConversion=1:heat = fuelHeat * 200.0d / 1.01 - So one 100% cell is 198.0198 heat it should reach. Simulation accuracy might of course throw that off by a small margin. - So purely passively it reaches 20000.0 heat. - */ +/* +Adding the Fuel Rod, the textures are applied through a model.json +Durability +Number of rod unused for now +%Heat +In ReactorCurve getHeating returns fuelHeat * 200.0d * throttle and getCooling returns _state.Heat() * (coolantConversion + 0.01). +Where coolantConversion is 1.00 if enough coolant is present. Solving that equation for a steady-state: heating + cooling = 0. +When throttle=coolantConversion=1:heat = fuelHeat * 200.0d / 1.01 +So one 100% cell is 198.0198 heat it should reach. Simulation accuracy might of course throw that off by a small margin. +So purely passively it reaches 20000.0 heat. +*/ const $FuelCellItem = Java.loadClass("fi.dea.mc.deafission.common.data.items.FuelCellItem"); const $DepletedFuelCellItem = Java.loadClass("fi.dea.mc.deafission.common.data.items.DepletedFuelCellItem"); @@ -551,33 +556,33 @@ const $DepletedFuelCellItem = Java.loadClass("fi.dea.mc.deafission.common.data.i //$ReactorBaseStats.Smr1 = new $ComponentTotals(200, 0, 0); StartupEvents.registry("item", (event) => { - const fuel = function(id, durability, rods, heat, createDepleted) { + const fuel = function (id, durability, rods, heat, createDepleted) { - if (createDepleted === undefined) createDepleted = true; + if (createDepleted === undefined) createDepleted = true; - event.createCustom("tfg:" + id, () => { - return new $FuelCellItem( - durability, - rods, - heat - ); - }); + event.createCustom("tfg:" + id, () => { + return new $FuelCellItem( + durability, + rods, + heat + ); + }); - if (createDepleted) { - event.createCustom("tfg:depleted_" + id, () => { - return new $DepletedFuelCellItem(); - }); - } - }; + if (createDepleted) { + event.createCustom("tfg:depleted_" + id, () => { + return new $DepletedFuelCellItem(); + }); + } + }; - fuel("thorium_rod", 5000, 1, 0.7); // Max Heat 139 - 1 Fuel - fuel("uranium_rod", 20000, 1, 2.2); // Max Heat 435 - 1 Fuel - fuel("plutonium_rod", 30000, 1, 3); // Max Heat 595 - 1 Fuel + fuel("thorium_rod", 5000, 1, 0.7); // Max Heat 139 - 1 Fuel + fuel("uranium_rod", 20000, 1, 2.2); // Max Heat 435 - 1 Fuel + fuel("plutonium_rod", 30000, 1, 3); // Max Heat 595 - 1 Fuel - fuel("tbu_232_rod", 5000, 1, 2); // Max Heat 396 - 1 Fuel + fuel("tbu_232_rod", 5000, 1, 2); // Max Heat 396 - 1 Fuel - fuel("americium_241_rod", 5000000, 1, 0.5); // Max Heat 99 - 1 Fuel - fuel("neptunium_237_rod", 100000, 1, 2); // Max Heat 396 - 1 Fuel - fuel("californium_252_rod", 500000, 1, 4); // Max Heat 792 - 1 Fuel + fuel("americium_241_rod", 5000000, 1, 0.5); // Max Heat 99 - 1 Fuel + fuel("neptunium_237_rod", 100000, 1, 2); // Max Heat 396 - 1 Fuel + fuel("californium_252_rod", 500000, 1, 4); // Max Heat 792 - 1 Fuel }); diff --git a/kubejs/startup_scripts/tfg/primitive/materials.primitive.js b/kubejs/startup_scripts/tfg/primitive/materials.primitive.js index 1d6a7b7fd..83b5b0fa0 100644 --- a/kubejs/startup_scripts/tfg/primitive/materials.primitive.js +++ b/kubejs/startup_scripts/tfg/primitive/materials.primitive.js @@ -88,6 +88,7 @@ function registerTFGPrimitiveMaterials(event) { .color(0xEEB9AD) .secondaryColor(0xF6A797) .formula("Al2Si2O5(OH)4") + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) // Film developing event.create('tfg:pyrogallol') diff --git a/kubejs/startup_scripts/tfg/space_general/materials.rockets.js b/kubejs/startup_scripts/tfg/space_general/materials.rockets.js index 0b1fb255e..2a485e561 100644 --- a/kubejs/startup_scripts/tfg/space_general/materials.rockets.js +++ b/kubejs/startup_scripts/tfg/space_general/materials.rockets.js @@ -10,7 +10,7 @@ function registerTFGRocketMaterials(event) { .components('6x aluminium', '2x stainless_steel', '1x red_steel') .color(0x333e47) .iconSet('metallic') - .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR) + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_BOLT_SCREW) .blastTemp(1760, $BlastProperty.GasTier.MID, 256, 900) event.create('rocket_alloy_t2') @@ -18,7 +18,7 @@ function registerTFGRocketMaterials(event) { .components('19x titanium', '4x vanadium', '3x aluminium', '3x chromium', '3x tin') .color(0x3c253d) .iconSet('metallic') - .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.DISABLE_ALLOY_BLAST) + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_BOLT_SCREW, GTMaterialFlags.DISABLE_ALLOY_BLAST) .blastTemp(3200, $BlastProperty.GasTier.MID, 1024, 1100) .liquid() @@ -30,7 +30,7 @@ function registerTFGRocketMaterials(event) { .liquid() .removeHazard() .iconSet('metallic') - .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR) + .flags(GTMaterialFlags.GENERATE_PLATE, GTMaterialFlags.GENERATE_ROD, GTMaterialFlags.GENERATE_DENSE, GTMaterialFlags.GENERATE_GEAR, GTMaterialFlags.GENERATE_BOLT_SCREW) .blastTemp(4200, $BlastProperty.GasTier.MID, 4096, 1300) */ @@ -160,4 +160,44 @@ function registerTFGRocketMaterials(event) { .gas() .components('5x nitrogen', '3x oxygen', '2x helium_3') .color(0xa3ed95) + + //#region Basalt Insulation Pannel + + event.create('tfg:basalt_fiber') + .ingot() + .components('1x basalt') + .flags( + GTMaterialFlags.DISABLE_DECOMPOSITION, + GTMaterialFlags.GENERATE_PLATE, + GTMaterialFlags.GENERATE_FOIL, + GTMaterialFlags.GENERATE_FINE_WIRE, + GTMaterialFlags.DISABLE_MATERIAL_RECIPES + ) + .color(0x525D6B) + + event.create('tfg:dichloropropane') + .liquid() + .components('3x carbon', '6x hydrogen', '2x chlorine') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xC2C6CC) + + event.create('tfg:3_chloropropylamine') + .liquid() + .components('3x carbon', '8x hydrogen', '1x chlorine', '1x nitrogen') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xFFF8C6) + + event.create('tfg:aminopropyl_chlorosilane') + .liquid() + .components('3x carbon', '8x hydrogen', '3x chlorine', '1x nitrogen', '1x silicon') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xC6E2FF) + + event.create('tfg:3_aminopropyltriethoxysilane') + .liquid() + .components('9x carbon', '23x hydrogen', '1x nitrogen', '3x oxygen', '1x silicon') + .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) + .color(0xFFE8C2) + + } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js index e5604e50b..44502e951 100644 --- a/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js +++ b/kubejs/startup_scripts/tfg/stone_types/materials.rocks.js @@ -1,32 +1,40 @@ // priority: 0 "use strict"; - const registerTFGRockMaterials = (event) => { // Specialized icon sets for TFC's own - modifyTFGIconSets(event) + modifyTFGIconSets(event) + + const registerStoneMaterial = (rockType, color, components, fluid, temp) => { + let builder = event.create(`tfg:${rockType}`) + .color(color) + .dust() + .iconSet(GTMaterialIconSet.ROUGH) + .components(components) + .flags( + GTMaterialFlags.MORTAR_GRINDABLE, + GTMaterialFlags.NO_SMASHING, + GTMaterialFlags.NO_SMELTING, + GTMaterialFlags.DISABLE_DECOMPOSITION); - const registerStoneMaterial = (rockType, color, components) => - event.create(`tfg:${rockType}`) - .color(color) - .dust() - .iconSet(GTMaterialIconSet.ROUGH) - .components(components) - .flags( - GTMaterialFlags.MORTAR_GRINDABLE, - GTMaterialFlags.NO_SMASHING, - GTMaterialFlags.NO_SMELTING, - GTMaterialFlags.DISABLE_DECOMPOSITION); + if (fluid === true) { + let fluidBuilder = GTFluidBuilder(); + if (temp !== undefined) { + fluidBuilder.temperature(temp); + } + builder.liquid(fluidBuilder); + } + }; // event.create() returns a material builder, not the actual material - registerStoneMaterial('sedimentary_clastic', 0xAF9377, ['quartzite', 'potassium_feldspar']); - registerStoneMaterial('sedimentary_carbonate', 0xADA67A, ['quartzite', 'calcite']); - registerStoneMaterial('sedimentary_organic', 0xA8706B, ['flint', 'unknown']); + registerStoneMaterial('sedimentary_clastic', 0xAF9377, ['quartzite', 'potassium_feldspar']); + registerStoneMaterial('sedimentary_carbonate', 0xADA67A, ['quartzite', 'calcite']); + registerStoneMaterial('sedimentary_organic', 0xA8706B, ['flint', 'unknown']); - registerStoneMaterial('metamorphic', 0x876981, ['marble', 'deepslate']); + registerStoneMaterial('metamorphic', 0x876981, ['marble', 'deepslate']); - registerStoneMaterial('igneous_ultramafic', 0x45474D, ['blackstone']); - registerStoneMaterial('igneous_mafic', 0x525D6B, ['basalt']); - registerStoneMaterial('igneous_intermediate', 0x71818A, ['andesite']); - registerStoneMaterial('igneous_felsic', 0x97B2BF, ['granite_red']); + registerStoneMaterial('igneous_ultramafic', 0x45474D, ['blackstone']); + registerStoneMaterial('igneous_mafic', 0x525D6B, ['basalt']); + registerStoneMaterial('igneous_intermediate', 0x71818A, ['andesite']); + registerStoneMaterial('igneous_felsic', 0x97B2BF, ['granite_red'], true, 1346); } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/tag_prefixes.js b/kubejs/startup_scripts/tfg/tag_prefixes.js index c3bbdfbfe..133a36c38 100644 --- a/kubejs/startup_scripts/tfg/tag_prefixes.js +++ b/kubejs/startup_scripts/tfg/tag_prefixes.js @@ -23,6 +23,80 @@ function registerTFGTagPrefixes(event) { TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:magnesia_refractory_brick')) TagPrefix.block.setIgnored(GTMaterials.get('tfg:magnesia_refractory_brick')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:weak_inconel_718')) + TagPrefix.block.setIgnored(GTMaterials.get('tfg:homogenized_inconel_718')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:weak_inconel_718')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:homogenized_inconel_718')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:weak_inconel_718')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:homogenized_inconel_718')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:weak_inconel_718')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:homogenized_inconel_718')) + TagPrefix.dust.setIgnored(GTMaterials.get('tfg:homogenized_inconel_718')) + + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:dirty_mo_si_b')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:dirty_mo_si_b')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:weak_mo_si_b')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:weak_mo_si_b')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:weak_mo_si_b')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:weak_mo_si_b')) + TagPrefix.ingot.setIgnored(GTMaterials.get('tfg:weak_mo_si_b')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:worked_mo_si_b')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:worked_mo_si_b')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:worked_mo_si_b')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:worked_mo_si_b')) + TagPrefix.ingot.setIgnored(GTMaterials.get('tfg:worked_mo_si_b')) + TagPrefix.dust.setIgnored(GTMaterials.get('tfg:worked_mo_si_b')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:homogenized_mo_si_b')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:homogenized_mo_si_b')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:homogenized_mo_si_b')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:homogenized_mo_si_b')) + TagPrefix.dust.setIgnored(GTMaterials.get('tfg:homogenized_mo_si_b')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:activated_mo_si_b')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:activated_mo_si_b')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:activated_mo_si_b')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:activated_mo_si_b')) + TagPrefix.dust.setIgnored(GTMaterials.get('tfg:activated_mo_si_b')) + + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:rough_silicon_carbide')) + TagPrefix.block.setIgnored(GTMaterials.get('tfg:rough_silicon_carbide')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:silicon_carbide')) + TagPrefix.block.setIgnored(GTMaterials.get('tfg:silicon_carbide')) + TagPrefix.plateDouble.setIgnored(GTMaterials.get('tfg:silicon_carbide')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:basalt_fiber')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:basalt_fiber')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:basalt_fiber')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:basalt_fiber')) + TagPrefix.dust.setIgnored(GTMaterials.get('tfg:basalt_fiber')) + TagPrefix.plateDouble.setIgnored(GTMaterials.get('tfg:basalt_fiber')) + TagPrefix.ingot.setIgnored(GTMaterials.get('tfg:basalt_fiber')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.dust.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.plateDouble.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.plate.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.bolt.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.screw.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.rod.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + //TagPrefix.turbineBlade.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + TagPrefix.ingot.setIgnored(GTMaterials.get('tfg:silicon_carbide_silicon_carbide')) + + TagPrefix.block.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) + TagPrefix.nugget.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) + TagPrefix.plateDouble.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) + TagPrefix.dust.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) + TagPrefix.dustSmall.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) + TagPrefix.dustTiny.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) + TagPrefix.bolt.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) + TagPrefix.screw.setIgnored(GTMaterials.get('tfg:diamond_tipped_mo_50_re')) } function excludeAllGemsButNormal(material) { diff --git a/pakku-lock.json b/pakku-lock.json index cfdb6f3a4..f40088b00 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -3073,6 +3073,69 @@ } ] }, + { + "pakku_id": "NONadCSyrDp2oF0G", + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "configuration", + "modrinth": "configuration" + }, + "name": { + "curseforge": "Configuration", + "modrinth": "Configuration" + }, + "id": { + "curseforge": "444699", + "modrinth": "3WjjSM5O" + }, + "files": [ + { + "type": "curseforge", + "file_name": "configuration-forge-1.20.1-3.1.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "neoforge", + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/5840/405/configuration-forge-1.20.1-3.1.0.jar", + "id": "5840405", + "parent_id": "444699", + "hashes": { + "sha1": "8757a9f1d47f48463765d1d202cdadc41c84f6b0", + "md5": "3d40159d0862913693a698a17e21161f" + }, + "required_dependencies": [], + "size": 439661, + "date_published": "2024-10-24T00:06:37.763Z" + }, + { + "type": "modrinth", + "file_name": "configuration-forge-1.20.1-3.1.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/3WjjSM5O/versions/h7CBg2Oe/configuration-forge-1.20.1-3.1.0.jar", + "id": "h7CBg2Oe", + "parent_id": "3WjjSM5O", + "hashes": { + "sha512": "444f4e502fec76208a4d1606bf2aedab3999e13171033720ea7fe56a6e2f28c3c817badc5592da17a4925a63e3502155c37ed0a4de2d2789106c72541ca99edf", + "sha1": "8757a9f1d47f48463765d1d202cdadc41c84f6b0" + }, + "required_dependencies": [], + "size": 439661, + "date_published": "2024-10-24T00:08:06.877314Z" + } + ] + }, { "pakku_id": "oB3af5YYb5fCmYxM", "type": "MOD", @@ -7332,6 +7395,74 @@ } ] }, + { + "pakku_id": "OtgfNTzqVoq1a5Vi", + "pakku_links": [ + "NONadCSyrDp2oF0G", + "WN9DdLqsRKVeZIc9" + ], + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "gregtech-modern-utilities", + "modrinth": "gregtech-modern-utilities" + }, + "name": { + "curseforge": "GregTech Modern Utilities", + "modrinth": "GregTech Modern Utilities" + }, + "id": { + "curseforge": "1235020", + "modrinth": "KMnOsM3N" + }, + "files": [ + { + "type": "curseforge", + "file_name": "gtmutils-2.8.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7612/516/gtmutils-2.8.0.jar", + "id": "7612516", + "parent_id": "1235020", + "hashes": { + "sha1": "84bcf3b9bfd475494d8964e0497490e19f46436b", + "md5": "fb63574e5af630b8e3ba18cd941fe0b4" + }, + "required_dependencies": [ + "444699", + "890405" + ], + "size": 569204, + "date_published": "2026-02-12T02:42:38.163Z" + }, + { + "type": "modrinth", + "file_name": "gtmutils-2.8.0.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/KMnOsM3N/versions/4UlKFJVD/gtmutils-2.8.0.jar", + "id": "4UlKFJVD", + "parent_id": "KMnOsM3N", + "hashes": { + "sha512": "96fe91a0b0fcc8e6d94c6300a7b5a000742b7aa9d73d567ecbebb5b5b006c15660574cafee21b3ba152a5a58ebbdd738084cbe6e3c2c8d3cfda2aa4e1bbca54d", + "sha1": "84bcf3b9bfd475494d8964e0497490e19f46436b" + }, + "required_dependencies": [], + "size": 569204, + "date_published": "2026-02-12T02:42:39.880894Z" + } + ] + }, { "pakku_id": "QHcH7jVuZ4XwJ61j", "pakku_links": [