From 6eb2de022096068e4edf8f8f7b823bfcc595afc5 Mon Sep 17 00:00:00 2001 From: TomPlop Date: Fri, 22 Aug 2025 07:41:27 -0400 Subject: [PATCH] Mars ressources (#1569) * stupid git again * First entry for the mars ore line * Adding the Ostrum Harvester in its first version * Adding new casings * Adding the complete Mars Ore Line * Bugs again * Add ores and textures * More changes * Changes to heavy and semi water and more fluid veins * Adding more crafting recipes * More recipes * weird * nerf ores * fix thorium * Adding dusty ores * More circuits change to gate IV at the end of Mars * Fix multiblocks * Changes to AE2 * Unified Pattern Provider and Interface * Removing Bedrock * Fully remove Bedrock Miner * Disable many stuffs until Mars * More fixes until Mars is out * Requested changes * Cleaning kubejs files * Adding Moon Ore Line * Change Mars water to Centrifuge * Fix duplicate --- .../material_sets/bright/dusty_raw_ore.json | 8 + .../material_sets/certus/dusty_raw_ore.json | 8 + .../material_sets/diamond/dusty_raw_ore.json | 8 + .../material_sets/dull/dusty_raw_ore.json | 8 + .../material_sets/fine/dusty_raw_ore.json | 8 + .../material_sets/metallic/dusty_raw_ore.json | 8 + .../material_sets/quartz/dusty_raw_ore.json | 8 + .../material_sets/ruby/dusty_raw_ore.json | 8 + .../material_sets/shiny/dusty_raw_ore.json | 8 + .../material_sets/tfc_gold/dusty_raw_ore.json | 8 + .../tfc_realgar/dusty_raw_ore.json | 8 + .../block/fluids/fluid.dense_ostrum_vapor.png | Bin 0 -> 27412 bytes .../fluid.dense_ostrum_vapor.png.mcmeta | 87 +++++++ .../fluids/fluid.lightweight_ostrum_vapor.png | Bin 0 -> 25572 bytes .../fluid.lightweight_ostrum_vapor.png.mcmeta | 87 +++++++ .../block/fluids/fluid.ostrum_vapor.png | Bin 0 -> 26828 bytes .../fluids/fluid.ostrum_vapor.png.mcmeta | 87 +++++++ .../block/fluids/fluid.regolith_vapor.png | Bin 0 -> 15957 bytes .../fluids/fluid.regolith_vapor.png.mcmeta | 5 + .../fluid.residual_radioactive_concoction.png | Bin 0 -> 14452 bytes ...residual_radioactive_concoction.png.mcmeta | 67 +++++ .../item/material_sets/dull/dusty_raw_ore.png | Bin 0 -> 5934 bytes .../dull/dusty_raw_ore_overlay.png | Bin 0 -> 3119 bytes .../dull/dusty_raw_ore_overlay.png.mcmeta | 67 +++++ .../dull/dusty_raw_ore_secondary.png | Bin 0 -> 358 bytes .../machine_casing_vacuum_engine_intake.png | Bin 0 -> 548 bytes ...ine_casing_vacuum_engine_intake.png.mcmeta | 5 + ...ine_casing_vacuum_engine_intake_active.png | Bin 0 -> 1083 bytes ...ing_vacuum_engine_intake_active.png.mcmeta | 5 + .../assets/tfg/textures/block/sand_spice.png | Bin 0 -> 1763 bytes kubejs/server_scripts/ae2/recipes.js | 136 +++++----- kubejs/server_scripts/extended_ae2/recipes.js | 246 ++++++++++++------ kubejs/server_scripts/gregtech/data.js | 152 ++++++++++- kubejs/server_scripts/gregtech/recipes.js | 30 ++- .../gregtech/recipes.machines.js | 244 +++++++++++------ kubejs/server_scripts/tfg/recipes.js | 2 + kubejs/server_scripts/tfg/recipes.mars.js | 72 +++++ .../tfg/recipes.miscellaneous.js | 2 +- .../server_scripts/tfg/recipes.moon_ores.js | 131 ++++++++++ kubejs/server_scripts/tfg/recipes.nuclear.js | 43 ++- kubejs/server_scripts/tfg/recipes.space.js | 2 +- .../server_scripts/tfg/recipes.terrariums.js | 9 +- kubejs/startup_scripts/ad_astra/materials.js | 1 - kubejs/startup_scripts/gtceu/constants.js | 7 +- kubejs/startup_scripts/gtceu/machines.js | 132 +++++++++- kubejs/startup_scripts/gtceu/materials.js | 13 + kubejs/startup_scripts/gtceu/recipe_types.js | 24 ++ kubejs/startup_scripts/tfg/blocks.js | 25 ++ kubejs/startup_scripts/tfg/fluids.js | 8 + kubejs/startup_scripts/tfg/items.js | 4 +- kubejs/startup_scripts/tfg/items.nuclear.js | 6 - kubejs/startup_scripts/tfg/materials.js | 66 +++++ .../startup_scripts/tfg/materials.nuclear.js | 8 - 53 files changed, 1610 insertions(+), 251 deletions(-) create mode 100644 kubejs/assets/gtceu/models/item/material_sets/bright/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/certus/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/diamond/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/dull/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/fine/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/metallic/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/quartz/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/ruby/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/shiny/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/tfc_gold/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/models/item/material_sets/tfc_realgar/dusty_raw_ore.json create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.dense_ostrum_vapor.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.dense_ostrum_vapor.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.lightweight_ostrum_vapor.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.lightweight_ostrum_vapor.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.ostrum_vapor.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.ostrum_vapor.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.regolith_vapor.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.regolith_vapor.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.residual_radioactive_concoction.png create mode 100644 kubejs/assets/gtceu/textures/block/fluids/fluid.residual_radioactive_concoction.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore.png create mode 100644 kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore_overlay.png create mode 100644 kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore_overlay.png.mcmeta create mode 100644 kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore_secondary.png create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake.png create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake_active.png create mode 100644 kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake_active.png.mcmeta create mode 100644 kubejs/assets/tfg/textures/block/sand_spice.png create mode 100644 kubejs/server_scripts/tfg/recipes.mars.js create mode 100644 kubejs/server_scripts/tfg/recipes.moon_ores.js delete mode 100644 kubejs/startup_scripts/tfg/items.nuclear.js diff --git a/kubejs/assets/gtceu/models/item/material_sets/bright/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/bright/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/bright/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/certus/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/certus/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/certus/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/diamond/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/diamond/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/diamond/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/dull/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/dull/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/dull/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/fine/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/fine/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/fine/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/metallic/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/metallic/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/metallic/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/quartz/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/quartz/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/quartz/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/ruby/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/ruby/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/ruby/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/shiny/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/shiny/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/shiny/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/tfc_gold/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/tfc_gold/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/tfc_gold/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/models/item/material_sets/tfc_realgar/dusty_raw_ore.json b/kubejs/assets/gtceu/models/item/material_sets/tfc_realgar/dusty_raw_ore.json new file mode 100644 index 000000000..686c28056 --- /dev/null +++ b/kubejs/assets/gtceu/models/item/material_sets/tfc_realgar/dusty_raw_ore.json @@ -0,0 +1,8 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gtceu:item/material_sets/dull/dusty_raw_ore", + "layer1": "gtceu:item/material_sets/dull/dusty_raw_ore_secondary", + "layer2": "gtceu:item/material_sets/dull/dusty_raw_ore_overlay" + } +} diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_ostrum_vapor.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_ostrum_vapor.png new file mode 100644 index 0000000000000000000000000000000000000000..d73ae13b2508828e7ea26d98266c19d1a6afb419 GIT binary patch literal 27412 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

}j`iJ3)LK=_UXi#+ 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 X000000Mb*F00000NkvXXu0mjf|4rB4 literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_ostrum_vapor.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_ostrum_vapor.png.mcmeta new file mode 100644 index 000000000..744a3d54c --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.dense_ostrum_vapor.png.mcmeta @@ -0,0 +1,87 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 39, + 38, + 37, + 36, + 35, + 34, + 33, + 32, + 31, + 30, + 29, + 28, + 27, + 26, + 25, + 24, + 23, + 22, + 21, + 20, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.lightweight_ostrum_vapor.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.lightweight_ostrum_vapor.png new file mode 100644 index 0000000000000000000000000000000000000000..79398a2326e36cfa65bfec494d652db6fc5ac9df GIT binary patch literal 25572 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 D3v94T literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.lightweight_ostrum_vapor.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.lightweight_ostrum_vapor.png.mcmeta new file mode 100644 index 000000000..744a3d54c --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.lightweight_ostrum_vapor.png.mcmeta @@ -0,0 +1,87 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 39, + 38, + 37, + 36, + 35, + 34, + 33, + 32, + 31, + 30, + 29, + 28, + 27, + 26, + 25, + 24, + 23, + 22, + 21, + 20, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.ostrum_vapor.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.ostrum_vapor.png new file mode 100644 index 0000000000000000000000000000000000000000..c2602b5a607583b8845801b16ba0e9f7c613df8f GIT binary patch literal 26828 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 LNkvXXu0mjfP4u7T literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.ostrum_vapor.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.ostrum_vapor.png.mcmeta new file mode 100644 index 000000000..744a3d54c --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.ostrum_vapor.png.mcmeta @@ -0,0 +1,87 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 39, + 38, + 37, + 36, + 35, + 34, + 33, + 32, + 31, + 30, + 29, + 28, + 27, + 26, + 25, + 24, + 23, + 22, + 21, + 20, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.regolith_vapor.png b/kubejs/assets/gtceu/textures/block/fluids/fluid.regolith_vapor.png new file mode 100644 index 0000000000000000000000000000000000000000..915dedcc40ff08763d9317f69f1100f73d31dd05 GIT binary patch literal 15957 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/block/fluids/fluid.residual_radioactive_concoction.png.mcmeta b/kubejs/assets/gtceu/textures/block/fluids/fluid.residual_radioactive_concoction.png.mcmeta new file mode 100644 index 000000000..6439dab8e --- /dev/null +++ b/kubejs/assets/gtceu/textures/block/fluids/fluid.residual_radioactive_concoction.png.mcmeta @@ -0,0 +1,67 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 29, + 28, + 27, + 26, + 25, + 24, + 23, + 22, + 21, + 20, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore.png b/kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..19fa4c874ea918554159c7047577082e440e5cbd GIT binary patch literal 5934 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 literal 0 HcmV?d00001 diff --git a/kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore_overlay.png b/kubejs/assets/gtceu/textures/item/material_sets/dull/dusty_raw_ore_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..d516c7ec4f87eed757567b5f0890ca0b281a6df8 GIT binary patch literal 3119 zcmV+~4AAq5P) zc~o0f9>>24VM*S5A&^2#7p%5|tj!=TbQw%LJu}*ona)hbTE~&0*H!JMxD)nc)rT69;kCO zl~2~TNji+|_lE18`f18(m-reHm{uakg&W`1nBHq^ZR@{ZR92w^01>x9;l_70>O|&S zDJ2eMjaL@|fIt*h&uv&3sA0La7T zN&uiKvBc^-2wR-JUORo>6WqU79xhj&K7JZSWfiI?4_>)tZ_nt90~(k;sWq2$bHU=m zx1tiFZkNern*4|7s}?LSeCx4-4Jw&j*8fh@eVHJ_*(<1_ozRDV} zDgdCRq^N|vsD}S8J4h}Eaa1AtyeH-x#w#V=tFA~ z=tI`(h`1*LAOHZ?DVQ?=5G0}603iS2xhmks2sEiK#UB)PV=RGn3$ zsTn7&tGpWko^8~nn)QH;hi>4J6(&4rYHT_MU>rk9g8Q!M0B}Yl8Pa4}v&O3mGB&t8 z_(%1X82yZSkC*2uwEYcmdGPw2TWXk^-T$=2gE!VLAMhS5GSLzb9xK?Os{N{VKqEL* zlD>o6&8?;CEOl>T~@O(V2G5a8;MhEtH(JDA>)dmG~aqv=JtJQJzuGMk$E^B41+6R1kE}q`~Ts*y- zoZt9zO=Ri{k8~t)3kUsf!OH-UpWLPb_<7K;m!~kt0pP_1y86Wgx|;jZ1^PbTHrWSE z^{#&bz|w;)3e$Uh_JJ7>mL6yBFy)WMGk`uGoW7(7fa8D@ z_JPej=&sSVly`KF1}xhL?&pC^^im?zFw}i;qpZGV^64a_&?*lsRVK2T2jtjRf5C41 zz>Eh4G1Lc6@nG$7{eyh(z-As4#!_3H@)u;3DA6tUfz3R4VzNZ_>h}f};F!NKz)mc$ z`dM(k#bA*K2_Ht7d^~WqeZZB&_JK?04?N2Q(pqtnR4)|3KX?w~Zx0U!Gynh} z>O1>qY3#BO?3sXbO~sKT9}j#yaKFD`7Y_hngMw-H6AGA*^_?`SWa%XniA*o}3()I5 zj>hnij|V;;cp(o+Z^*GjJeVI8aEulSLbJcoMhsRNu<&ox8QGs~sXRjD3hBXg@t13Q!f8|8B zBw5;JsBD@9ILHI7M%T^uvdI2M8vr=TgW@Eq-YFh<#`AwRmacIBQ-)NYu@5#VnC4ff zkGjgo1K#`t>4BXeUf;XT2%tZKp|_{E7q~IV2DJ}@gQb3CY;?}~%OdTpKip3$4r(80 zXQnU8`ts5^x7Y`|kKbHEe_8R#fClX4fk@O>&msFj7atTMo_+fzzyTig96F~BnU^3P zVfKMffSfB7_pV&*g?;a;vo-p^fvI7k#G^S;&<|h_zd{?9U<$AX-KXEAX6W#7F zxHLb}#{+lEmi$DkZ~2uOW9k6l!tJR$02j?4kbEU_o!349%z5C;PaKN;M32lLcqTt_ zn9H;IiF~pvKaq&IayRRI;!TpDsMYAY4^RSs-u#38w4cOhAKXx3ELC0@OO^9n-%=P$ zZ6W7&4`-Ll%i;^0r^zpCXQe*?ILL$Sn%0Qn7heznefGh=)AEf!f4=1*07zN+Om$OZ z)2X)BHYNF6xxFkcn0kydc8>?Z46qMUrrjw42DcA>*>`Fz;0^YHSp%duDkD9HVMFY0^3#|vv8AcKhoDx}r<5J~BQJZq2s7)?!*ex1qJaF1ySd%~>aEb@3 z8g(8mPmuxuczOz5Ga;PD5s_YUGxESE z9}nOHf1!U8W_29>*$YQ?zbEILlY_7K_Od+yatIH`H||~0*|-d z4~C;|MjnJW?0Ljt9!xk^^(3=!$vfPh+2t=RJ^WLcMf;%muE?E$6Y)l7`shhq9!U4^ z_|NEuJxd&pFUU`J>$;3=$K}c52&+7JXrlO00QmRWU*2|ledAQE@rRNf*KQ@}zV(eB zl4p5PoHFWr({gsj8)?AL=6obR9$dU*R+;zBC%P{GAf$d*k;~(a6E3hP#DT)F2@9qM zJLE6))aY7!dRc7IcgZd8kF+o{XyL-hpoQc-H9C+jN@6Z??F4Hw3zb!$>=aa^)0Vn7 zrBv~BrRg=R@kUb~sLCql+Wa&=9&DN(-e_8G1o#VH!~>`D4^}DYZ^tWdQ@CS4lxAZu zi|zWZu@3nQ_XhZX4cypNi&q&Fg6`wHzB-Qn%wi>58t_hW1C=h5UG_m>ZDsPBqq=*! zWh?@vBw1$Y(QGG65Hwp$)mb$FaCBe}xJCP*N3(sv_X5dBGPMtQE1RxgQ0HbUxye0t zuU`O0J`bFZFOWS^oZ3H;B(RYE6A2eo@pL8MR~k|O2Z=0t;kLdqhI-FZ#eNMh9yqOn z80rJlYj)WOYs)Hlw*j(RnaHmB1L^*qA9Z$h^(?RN7|*?Dmwh0WGD3MRHz2ePV~ z$NG5Sq4)v-AZwC%1vxh5flXSkV9r~+|4c0X$uqI^Cw%vW0FYPT5y^KG=nEa%+!K#z zc{KI9OB)=C^NGUBZLdfVefEaK{z7mtEe0HjFA#-2vh?Mq#->yGQEe*HO)d`r;LlUz zH6*^^WnMNWH9G*WgezA4U3kmdB9`_dj z+|=tA%o-rQA;+GHH$Hfa_;2oiiYsOMlL}5JI1XbTjBnh#Vp*M*a+n8W=G@i;xN81@ zIsC=yRdMvE+#7cJ3zC4I(D2Y;3E-f8uqbEr6nf^^F)ri5s1u#t$H&0mbN&KXgZT?X zyW62lp1w}OoFPAM0NmX9%H-D~>|WnU8p$iGmAv zf5A+q_QBdj#w=Lvw7h3TIxOyTWvAuifj95~fMfFqugwU(=oAm+Ga{wKga?*nb9w;) zypTYDWpiPV=;;{h{sF(9=xSilsTc|3V z#G#UrsX2p*Ys!`q5uU~q0y-0aMA~sLa`BpN!}%ut{^#fC{@C#)-Cv}0di4&m{kzuP ztYhtHRxo&MG4Eq(?DT+~iCdD)4=!7rdHb7^p0aQ7lM*KLvlAs5lR9k9@AmdkOk#VQ zpEAv&PyT`WpE(ly-v2(mYu$63^V-LsSGIldE9{nOEfvyZuwZQbzNERcq&Vs6WfRp6 z4bhF-=DxwAu7%u(Cme6#5OxV{5&goncIz%R@gHAowoE&_$%lV2XBSuM3+)G;21-^< zm+xJj_Put!I495H1GnxP@0!h8@L+29?|6e}oGb5FSm<3S`UMOI22WQ%mvv4FO#rme BjKlx{ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake.png b/kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake.png new file mode 100644 index 0000000000000000000000000000000000000000..cda7194b0e8e069ea24fcf5d0a63f4ea3942f1a5 GIT binary patch literal 548 zcmV+<0^9wGP)ljygtwzuDm`o-BJfBar)&O6CD2gbG zg3ION=mGo=hX71xGql#6&u1qiO;Z+&1wVkJZJU3GLxd1iuNT$pMHEF$r_)wVS(XSP z_^~EsSw@m1tk-L**UPa`N|EO|`~BWA%CgLXb!}l?*G`vG3V`{14nPnD01mjWYr-)6 z{zA*?&xief@0yfSNGV;;%Ddg~?(P^g!!}sA|7K)80QhOT-b7YP5d;BMRdG6BSUo}r-tRYgo};y<-|IQh=KKSMVTdv23lPV#qYJRx?fyH;%jFU&B>TF0000C literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake.png.mcmeta b/kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake.png.mcmeta new file mode 100644 index 000000000..f96626000 --- /dev/null +++ b/kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation":{ + "frametime":1 + } +} diff --git a/kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake_active.png b/kubejs/assets/tfg/textures/block/casings/machine_casing_vacuum_engine_intake_active.png new file mode 100644 index 0000000000000000000000000000000000000000..8072b8fb4fe52a0ad53fd40c918ffbc745127478 GIT binary patch literal 1083 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 QDgzbQp00i_>zopr08#2_ApigX literal 0 HcmV?d00001 diff --git a/kubejs/server_scripts/ae2/recipes.js b/kubejs/server_scripts/ae2/recipes.js index 2e7b72e49..60a4f168d 100644 --- a/kubejs/server_scripts/ae2/recipes.js +++ b/kubejs/server_scripts/ae2/recipes.js @@ -1154,7 +1154,7 @@ global.MINECRAFT_DYE_NAMES.forEach(dye => { 'ae2:logic_processor', 'ae2:engineering_processor', 'ae2:calculation_processor', - '#gtceu:circuits/iv', + '#gtceu:circuits/ev', '6x #forge:plates/stainless_steel') .inputFluids(Fluid.of('tfg:fluix', 144*5)) .itemOutputs('ae2:crafting_unit') @@ -1167,7 +1167,7 @@ global.MINECRAFT_DYE_NAMES.forEach(dye => { 'ae2:logic_processor', 'ae2:engineering_processor', 'ae2:calculation_processor', - '#gtceu:circuits/iv', + '#gtceu:circuits/ev', '6x #forge:plates/stainless_steel') .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*5)) .itemOutputs('2x ae2:crafting_unit') @@ -1255,57 +1255,57 @@ global.MINECRAFT_DYE_NAMES.forEach(dye => { event.recipes.gtceu.assembler('ae2:interface_mv') .itemInputs( 'gtceu:mv_conveyor_module', - '8x #forge:plates/glass', + '2x #tfc:workbenches', '4x #forge:plates/aluminium', '4x ae2:annihilation_core', '4x ae2:formation_core') .inputFluids(Fluid.of('tfg:fluix', 144)) .itemOutputs('ae2:interface') - .duration(200) + .duration(20*20) .EUt(GTValues.VA[GTValues.MV]) .cleanroom(CleanroomType.CLEANROOM) - // HV Moon Only - event.recipes.gtceu.assembler('ae2:interface_hv_moon') + // MV Moon Only + event.recipes.gtceu.assembler('ae2:interface_mv_moon') .itemInputs( - 'gtceu:hv_conveyor_module', - '8x #forge:plates/glass', - '4x #forge:plates/stainless_steel', + 'gtceu:mv_conveyor_module', + '2x #tfc:workbenches', + '4x #forge:plates/aluminium', '4x ae2:annihilation_core', '4x ae2:formation_core') .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144)) .itemOutputs('4x ae2:interface') - .duration(200) - .EUt(GTValues.VA[GTValues.HV]) + .duration(20*10) + .EUt(GTValues.VA[GTValues.MV]) .dimension('ad_astra:moon') - // EV - event.recipes.gtceu.assembler('ae2:interface_ev') + // IV + event.recipes.gtceu.assembler('ae2:interface_iv') .itemInputs( - 'gtceu:ev_conveyor_module', - '8x #forge:plates/glass', - '4x #forge:plates/titanium', + 'gtceu:iv_conveyor_module', + '2x #tfc:workbenches', + '4x #forge:plates/tungsten_steel', '16x ae2:annihilation_core', '16x ae2:formation_core') - .inputFluids(Fluid.of('tfg:fluix', 1152)) - .itemOutputs('8x ae2:interface') - .duration(200) - .EUt(GTValues.VA[GTValues.EV]) + .inputFluids(Fluid.of('tfg:fluix', 144*8)) + .itemOutputs('16x ae2:interface') + .duration(20*20) + .EUt(GTValues.VA[GTValues.IV]) .cleanroom(CleanroomType.CLEANROOM) - // LuV - event.recipes.gtceu.assembler('ae2:interface_luv') + // IV Moon Only + event.recipes.gtceu.assembler('ae2:interface_iv_moon') .itemInputs( - 'gtceu:luv_conveyor_module', - '8x #forge:plates/glass', - '4x #forge:plates/rhodium_plated_palladium', - '32x ae2:annihilation_core', - '32x ae2:formation_core') - .inputFluids(Fluid.of('tfg:fluix', 4608)) + 'gtceu:iv_conveyor_module', + '2x #tfc:workbenches', + '4x #forge:plates/tungsten_steel', + '16x ae2:annihilation_core', + '16x ae2:formation_core') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8)) .itemOutputs('32x ae2:interface') - .duration(200) - .EUt(GTValues.VA[GTValues.LuV]) - .cleanroom(CleanroomType.CLEANROOM) + .duration(20*10) + .EUt(GTValues.VA[GTValues.IV]) + .dimension('ad_astra:moon') //#endregion @@ -1322,51 +1322,51 @@ global.MINECRAFT_DYE_NAMES.forEach(dye => { '4x ae2:formation_core') .inputFluids(Fluid.of('tfg:fluix', 144)) .itemOutputs('ae2:pattern_provider') - .duration(800) + .duration(20*20) .EUt(GTValues.VA[GTValues.MV]) .cleanroom(CleanroomType.CLEANROOM) - // HV Moon Only + // MV Moon Only event.recipes.gtceu.assembler('ae2:pattern_provider_hv_moon') .itemInputs( - 'gtceu:hv_robot_arm', + 'gtceu:mv_robot_arm', '2x #tfc:workbenches', - '4x #forge:plates/stainless_steel', + '4x #forge:plates/aluminium', '4x ae2:annihilation_core', '4x ae2:formation_core') .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144)) .itemOutputs('4x ae2:pattern_provider') - .duration(200) - .EUt(GTValues.VA[GTValues.HV]) + .duration(20*10) + .EUt(GTValues.VA[GTValues.MV]) .dimension('ad_astra:moon') - // EV + // IV event.recipes.gtceu.assembler('ae2:pattern_provider_ev') .itemInputs( - 'gtceu:ev_robot_arm', + 'gtceu:iv_robot_arm', '2x #tfc:workbenches', - '4x #forge:plates/titanium', + '4x #forge:plates/tungsten_steel', '16x ae2:annihilation_core', '16x ae2:formation_core') - .inputFluids(Fluid.of('tfg:fluix', 1152)) - .itemOutputs('8x ae2:pattern_provider') - .duration(800) - .EUt(GTValues.VA[GTValues.EV]) + .inputFluids(Fluid.of('tfg:fluix', 144*8)) + .itemOutputs('16x ae2:pattern_provider') + .duration(20*20) + .EUt(GTValues.VA[GTValues.IV]) .cleanroom(CleanroomType.CLEANROOM) - // LuV + // IV Moon Only event.recipes.gtceu.assembler('ae2:pattern_provider_luv') .itemInputs( - 'gtceu:luv_robot_arm', + 'gtceu:iv_robot_arm', '2x #tfc:workbenches', - '4x #forge:plates/rhodium_plated_palladium', - '32x ae2:annihilation_core', - '32x ae2:formation_core') - .inputFluids(Fluid.of('tfg:fluix', 4608)) + '4x #forge:plates/tungsten_steel', + '16x ae2:annihilation_core', + '16x ae2:formation_core') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8)) .itemOutputs('32x ae2:pattern_provider') - .duration(800) - .EUt(GTValues.VA[GTValues.LuV]) - .cleanroom(CleanroomType.CLEANROOM) + .duration(20*10) + .EUt(GTValues.VA[GTValues.IV]) + .dimension('ad_astra:moon') //#endregion @@ -2152,24 +2152,38 @@ global.MINECRAFT_DYE_NAMES.forEach(dye => { '8x ae2:engineering_processor', '14x gtceu:iv_sensor', 'ae2:logic_processor') - .inputFluids(Fluid.of('gtceu:titanium', 1440)) + .inputFluids(Fluid.of('tfg:fluix', 144*200)) + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*150)) .itemOutputs('ae2:quantum_ring') .duration(900) - .EUt(8300) + .EUt(GTValues.VA[GTValues.ZPM]) .cleanroom(CleanroomType.CLEANROOM) // Quantum Link Chamber event.recipes.gtceu.assembly_line('ae2:quantum_link') .itemInputs( '8x ae2:fluix_pearl', - '6x ae2:quartz_vibrant_glass', - '8x ae2:engineering_processor', - '14x gtceu:iv_sensor', - '2x gtceu:hv_lithium_battery') - .inputFluids(Fluid.of('gtceu:titanium', 1088)) + 'gtceu:fusion_glass', + '32x megacells:accumulation_processor', + '32x megacells:accumulation_processor', + '32x ae2:engineering_processor', + '32x ae2:engineering_processor', + '32x ae2:logic_processor', + '32x ae2:logic_processor', + '32x ae2:calculation_processor', + '32x ae2:calculation_processor', + 'gtceu:ruthenium_trinium_americium_neutronate_hex_wire', + '32x gtceu:uv_sensor', + '32x gtceu:uv_emitter', + '8x gtceu:uv_field_generator', + 'gtceu:max_battery') + .inputFluids(Fluid.of('tfg:fluix', 144*2000)) + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*1500)) + .stationResearch(b => b.researchStack(Item.of('minecraft:glass')).EUt(GTValues.VA[GTValues.UV]).CWUt(256)) + .dimension('ad_astra:moon') .itemOutputs('ae2:quantum_link') .duration(700) - .EUt(8300) + .EUt(GTValues.VA[GTValues.UHV]) .cleanroom(CleanroomType.CLEANROOM) // Chemical Reactor diff --git a/kubejs/server_scripts/extended_ae2/recipes.js b/kubejs/server_scripts/extended_ae2/recipes.js index 2b7119994..6c6842bac 100644 --- a/kubejs/server_scripts/extended_ae2/recipes.js +++ b/kubejs/server_scripts/extended_ae2/recipes.js @@ -14,58 +14,79 @@ const registerExtendedAE2Recipes = (event) => { //#region Ext Interface - // IV + // IV - event.recipes.gtceu.assembler('expatternprovider:ex_interface_iv') + event.recipes.gtceu.assembler('tfg:ex_interface_iv') .itemInputs( 'gtceu:iv_conveyor_module', '8x gtceu:laminated_glass', - '4x gtceu:tungsten_steel_plate', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor', + '2x megacells:accumulation_processor', '2x #ae2:interface') .inputFluids(Fluid.of('tfg:fluix', 144*8)) .itemOutputs('expatternprovider:ex_interface') .duration(300) .EUt(GTValues.VA[GTValues.IV]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(1) - // LuV Moon Only + // IV Moon Only - event.recipes.gtceu.assembler('expatternprovider:ex_interface_luv_moon') + event.recipes.gtceu.assembler('tfg:ex_interface_iv_moon') .itemInputs( - 'gtceu:luv_conveyor_module', + 'gtceu:iv_conveyor_module', '8x gtceu:laminated_glass', - '4x #forge:plates/rhodium_plated_palladium', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor', + '2x megacells:accumulation_processor', '2x #ae2:interface') .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8)) .itemOutputs('2x expatternprovider:ex_interface') .duration(300) - .EUt(GTValues.VA[GTValues.LuV]) + .EUt(GTValues.VA[GTValues.IV]) .dimension('ad_astra:moon') + .circuit(1) // ZPM - event.recipes.gtceu.assembler('expatternprovider:ex_interface_zpm') + event.recipes.gtceu.assembler('tfg:ex_interface_zpm') .itemInputs( 'gtceu:zpm_conveyor_module', '8x gtceu:laminated_glass', '4x #forge:plates/naquadah_alloy', - '32x ae2:annihilation_core', - '32x ae2:formation_core', - 'megacells:accumulation_processor', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor', '16x #ae2:interface') - .inputFluids(Fluid.of('tfg:fluix', 144*16)) - .itemOutputs('8x expatternprovider:ex_interface') + .inputFluids(Fluid.of('tfg:fluix', 144*32)) + .itemOutputs('16x expatternprovider:ex_interface') .duration(300) .EUt(GTValues.VA[GTValues.ZPM]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(1) - // Extended Interface Upgrade + // ZPM Moon Only + + event.recipes.gtceu.assembler('tfg:ex_interface_zpm_moon') + .itemInputs( + 'gtceu:zpm_conveyor_module', + '8x gtceu:laminated_glass', + '4x #forge:plates/naquadah_alloy', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor', + '16x #ae2:interface') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*32)) + .itemOutputs('32x expatternprovider:ex_interface') + .duration(300) + .EUt(GTValues.VA[GTValues.ZPM]) + .dimension('ad_astra:moon') + .circuit(1) + + // Interface Upgrade // IV @@ -73,34 +94,34 @@ const registerExtendedAE2Recipes = (event) => { .itemInputs( 'gtceu:iv_conveyor_module', '8x gtceu:laminated_glass', - '4x gtceu:tungsten_steel_plate', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor', - '#ae2:interface') + '2x megacells:accumulation_processor', + '1x #ae2:interface') .inputFluids(Fluid.of('tfg:fluix', 144*8)) .itemOutputs('expatternprovider:interface_upgrade') .duration(300) - .circuit(4) .EUt(GTValues.VA[GTValues.IV]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(2) - // LuV Moon Only + // IV Moon Only - event.recipes.gtceu.assembler('expatternprovider:interface_upgrade_luv_moon') + event.recipes.gtceu.assembler('expatternprovider:interface_upgrade_iv_moon') .itemInputs( - 'gtceu:luv_conveyor_module', + 'gtceu:iv_conveyor_module', '8x gtceu:laminated_glass', - '4x #forge:plates/rhodium_plated_palladium', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor') + '2x megacells:accumulation_processor') .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8)) .itemOutputs('2x expatternprovider:interface_upgrade') .duration(300) - .circuit(4) - .EUt(GTValues.VA[GTValues.LuV]) + .EUt(GTValues.VA[GTValues.IV]) .dimension('ad_astra:moon') + .circuit(2) // ZPM @@ -109,16 +130,33 @@ const registerExtendedAE2Recipes = (event) => { 'gtceu:zpm_conveyor_module', '8x gtceu:laminated_glass', '4x #forge:plates/naquadah_alloy', - '32x ae2:annihilation_core', - '32x ae2:formation_core', - 'megacells:accumulation_processor', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor', '8x #ae2:interface') - .inputFluids(Fluid.of('tfg:fluix', 144*16)) - .itemOutputs('8x expatternprovider:interface_upgrade') + .inputFluids(Fluid.of('tfg:fluix', 144*32)) + .itemOutputs('16x expatternprovider:interface_upgrade') .duration(300) - .circuit(4) .EUt(GTValues.VA[GTValues.ZPM]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(2) + + // ZPM Moon Only + + event.recipes.gtceu.assembler('expatternprovider:interface_upgrade_zpm_moon') + .itemInputs( + 'gtceu:zpm_conveyor_module', + '8x gtceu:laminated_glass', + '4x #forge:plates/naquadah_alloy', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*32)) + .itemOutputs('32x expatternprovider:interface_upgrade') + .duration(300) + .EUt(GTValues.VA[GTValues.ZPM]) + .dimension('ad_astra:moon') + .circuit(2) //#endregion @@ -126,106 +164,143 @@ const registerExtendedAE2Recipes = (event) => { // IV - event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_luv') + event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_iv') .itemInputs( '4x #expatternprovider:extended_interface', '4x megacells:accumulation_processor', 'gtceu:iv_robot_arm', 'gtceu:iv_fluid_regulator', '4x #forge:dense_plates/tungsten_steel', - '#gtceu:circuits/iv') + '#gtceu:circuits/luv') .inputFluids(Fluid.of('tfg:fluix', 144*9)) .itemOutputs("expatternprovider:oversize_interface") .duration(300) .EUt(GTValues.VA[GTValues.IV]) .cleanroom(CleanroomType.CLEANROOM) - // LuV + // IV Moon - event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_zpm') + event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_iv_moon') .itemInputs( '4x #expatternprovider:extended_interface', '4x megacells:accumulation_processor', - 'gtceu:luv_robot_arm', - 'gtceu:luv_fluid_regulator', - '4x #forge:dense_plates/rhodium_plated_palladium', + 'gtceu:iv_robot_arm', + 'gtceu:iv_fluid_regulator', + '4x #forge:dense_plates/tungsten_steel', '#gtceu:circuits/luv') - .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*4)) + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*9)) .itemOutputs("4x expatternprovider:oversize_interface") .duration(300) - .EUt(GTValues.VA[GTValues.LuV]) + .EUt(GTValues.VA[GTValues.IV]) .dimension('ad_astra:moon') // ZPM - event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_uv') + event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_zpm') .itemInputs( '8x #expatternprovider:extended_interface', '4x megacells:accumulation_processor', 'gtceu:zpm_robot_arm', 'gtceu:zpm_fluid_regulator', '4x #forge:dense_plates/naquadah_alloy', - '#gtceu:circuits/zpm') + '#gtceu:circuits/uv') .inputFluids(Fluid.of('tfg:fluix', 144*18)) .itemOutputs("8x expatternprovider:oversize_interface") .duration(300) .EUt(GTValues.VA[GTValues.ZPM]) .cleanroom(CleanroomType.CLEANROOM) + // ZPM Moon + + event.recipes.gtceu.assembly_line('expatternprovider:oversize_interface_zpm_moon') + .itemInputs( + '8x #expatternprovider:extended_interface', + '4x megacells:accumulation_processor', + 'gtceu:zpm_robot_arm', + 'gtceu:zpm_fluid_regulator', + '4x #forge:dense_plates/naquadah_alloy', + '#gtceu:circuits/uv') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*18)) + .itemOutputs("16x expatternprovider:oversize_interface") + .duration(300) + .EUt(GTValues.VA[GTValues.ZPM]) + .dimension('ad_astra:moon') + //#endregion //#region Ext Pattern Provider // IV - event.recipes.gtceu.assembler('expatternprovider:ex_pattern_provider_iv') + event.recipes.gtceu.assembler('tfg:ex_pattern_provider_iv') .itemInputs( 'gtceu:iv_robot_arm', '8x gtceu:laminated_glass', - '4x gtceu:tungsten_steel_plate', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor', + '2x megacells:accumulation_processor', '2x #ae2:pattern_provider') .inputFluids(Fluid.of('tfg:fluix', 144*8)) .itemOutputs('expatternprovider:ex_pattern_provider') .duration(300) .EUt(GTValues.VA[GTValues.IV]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(1) - // LuV Moon Only + // IV Moon Only - event.recipes.gtceu.assembler('expatternprovider:ex_pattern_provider_moon') + event.recipes.gtceu.assembler('tfg:ex_pattern_provider_iv_moon') .itemInputs( - 'gtceu:luv_robot_arm', + 'gtceu:iv_robot_arm', '8x gtceu:laminated_glass', - '4x #forge:plates/rhodium_plated_palladium', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor', + '2x megacells:accumulation_processor', '2x #ae2:pattern_provider') .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8)) .itemOutputs('2x expatternprovider:ex_pattern_provider') .duration(300) - .EUt(GTValues.VA[GTValues.LuV]) + .EUt(GTValues.VA[GTValues.IV]) .dimension('ad_astra:moon') + .circuit(1) // ZPM - event.recipes.gtceu.assembler('expatternprovider:ex_pattern_provider_zpm') + event.recipes.gtceu.assembler('tfg:ex_pattern_provider_zpm') .itemInputs( 'gtceu:zpm_robot_arm', '8x gtceu:laminated_glass', '4x #forge:plates/naquadah_alloy', - '32x ae2:annihilation_core', - '32x ae2:formation_core', - 'megacells:accumulation_processor', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor', '16x #ae2:pattern_provider') - .inputFluids(Fluid.of('tfg:fluix', 144*16)) - .itemOutputs('8x expatternprovider:ex_pattern_provider') + .inputFluids(Fluid.of('tfg:fluix', 144*32)) + .itemOutputs('16x expatternprovider:ex_pattern_provider') .duration(300) .EUt(GTValues.VA[GTValues.ZPM]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(1) + + // ZPM Moon Only + + event.recipes.gtceu.assembler('tfg:ex_pattern_provider_zpm_moon') + .itemInputs( + 'gtceu:zpm_robot_arm', + '8x gtceu:laminated_glass', + '4x #forge:plates/naquadah_alloy', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor', + '16x #ae2:pattern_provider') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*32)) + .itemOutputs('32x expatternprovider:ex_pattern_provider') + .duration(300) + .EUt(GTValues.VA[GTValues.ZPM]) + .dimension('ad_astra:moon') + .circuit(1) // Pattern Provider Upgrade @@ -235,34 +310,34 @@ const registerExtendedAE2Recipes = (event) => { .itemInputs( 'gtceu:iv_robot_arm', '8x gtceu:laminated_glass', - '4x gtceu:tungsten_steel_plate', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor', - '#ae2:pattern_provider') + '2x megacells:accumulation_processor', + '1x #ae2:pattern_provider') .inputFluids(Fluid.of('tfg:fluix', 144*8)) .itemOutputs('expatternprovider:pattern_provider_upgrade') .duration(300) - .circuit(4) .EUt(GTValues.VA[GTValues.IV]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(2) - // LuV Moon Only + // IV Moon Only - event.recipes.gtceu.assembler('expatternprovider:pattern_provider_upgrade_luv_moon') + event.recipes.gtceu.assembler('expatternprovider:pattern_provider_upgrade_iv_moon') .itemInputs( - 'gtceu:luv_robot_arm', + 'gtceu:iv_robot_arm', '8x gtceu:laminated_glass', - '4x #forge:plates/rhodium_plated_palladium', + '4x #forge:plates/tungsten_steel', '4x ae2:annihilation_core', '4x ae2:formation_core', - 'megacells:accumulation_processor') + '2x megacells:accumulation_processor') .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*8)) .itemOutputs('2x expatternprovider:pattern_provider_upgrade') .duration(300) - .circuit(4) - .EUt(GTValues.VA[GTValues.LuV]) + .EUt(GTValues.VA[GTValues.IV]) .dimension('ad_astra:moon') + .circuit(2) // ZPM @@ -271,16 +346,33 @@ const registerExtendedAE2Recipes = (event) => { 'gtceu:zpm_robot_arm', '8x gtceu:laminated_glass', '4x #forge:plates/naquadah_alloy', - '32x ae2:annihilation_core', - '32x ae2:formation_core', - 'megacells:accumulation_processor', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor', '8x #ae2:pattern_provider') - .inputFluids(Fluid.of('tfg:fluix', 144*16)) - .itemOutputs('8x expatternprovider:pattern_provider_upgrade') + .inputFluids(Fluid.of('tfg:fluix', 144*32)) + .itemOutputs('16x expatternprovider:pattern_provider_upgrade') .duration(300) - .circuit(4) .EUt(GTValues.VA[GTValues.ZPM]) .cleanroom(CleanroomType.CLEANROOM) + .circuit(2) + + // ZPM Moon Only + + event.recipes.gtceu.assembler('expatternprovider:pattern_provider_upgrade_zpm_moon') + .itemInputs( + 'gtceu:zpm_robot_arm', + '8x gtceu:laminated_glass', + '4x #forge:plates/naquadah_alloy', + '16x ae2:annihilation_core', + '16x ae2:formation_core', + '8x megacells:accumulation_processor') + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*32)) + .itemOutputs('32x expatternprovider:pattern_provider_upgrade') + .duration(300) + .EUt(GTValues.VA[GTValues.ZPM]) + .dimension('ad_astra:moon') + .circuit(2) //#endregion diff --git a/kubejs/server_scripts/gregtech/data.js b/kubejs/server_scripts/gregtech/data.js index 115b7fada..db04fc032 100644 --- a/kubejs/server_scripts/gregtech/data.js +++ b/kubejs/server_scripts/gregtech/data.js @@ -124,7 +124,7 @@ const registerGTCEUMetals = (event) => { const registerGTCEUBedrockOreVeins = (event) => { - +/* // Tin, Magnesium event.add('tfg:moon_tin', vein => { vein.weight(75) @@ -155,7 +155,6 @@ const registerGTCEUBedrockOreVeins = (event) => { .material(GTMaterials.Chalcopyrite, 10) .material(GTMaterials.Zeolite, 4) .material(GTMaterials.Cassiterite, 3) - .material(GTMaterials.Realgar, 2) .dimensions('ad_astra:moon') }) @@ -191,6 +190,7 @@ const registerGTCEUBedrockOreVeins = (event) => { .material(GTMaterials.Pollucite, 1) .dimensions('ad_astra:moon') }) + */ } function registerGTCEUBedrockFluidVeins(event) { @@ -227,4 +227,152 @@ function registerGTCEUBedrockFluidVeins(event) { vein.depletionChance(1) vein.depletedYield(10) }) + + // Mars Fluid Vein - Credit to Monifactory + + const Registries = Java.loadClass("net.minecraft.core.registries.Registries") + const ResourceKey = Java.loadClass("net.minecraft.resources.ResourceKey") + const martianOasisResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/martian_oasis") + const martianAmberHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/amber_hills") + const martianAmberPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/amber_plains") + const martianMountainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/martian_mountains") + const martianRusticusHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/rusticus_hills") + const martianRusticusPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/rusticus_plains") + const martianSangnumHillsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/sangnum_hills") + const martianSangnumPlainsResourceKey = ResourceKey.create(Registries.BIOME, "tfg:mars/sangnum_plains") + + event.add('tfg:semiheavy_ammoniacal_water', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:semiheavy_ammoniacal_water').fluid) + vein.weight(100) + vein.minimumYield(200) + vein.maximumYield(400) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(15) + }) + + event.add('tfg:liquid_carbon_dioxide', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('gtceu:liquid_carbon_dioxide').fluid) + vein.weight(15) + vein.minimumYield(20) + vein.maximumYield(350) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + // Heavy Ammonical Water in Specific Biome Credit to Monifactory from https://github.com/ThePansmith/Monifactory/blob/main/kubejs/server_scripts/worldgen/fluidVeins.js + + event.add('tfg:heavy_ammoniacal_water_oasis', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(350, martianOasisResourceKey) + vein.weight(0) + vein.minimumYield(300) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(20) + }) + + event.add('tfg:heavy_ammoniacal_water_amber_hills', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianAmberHillsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + event.add('tfg:heavy_ammoniacal_water_amber_plains', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianAmberPlainsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + event.add('tfg:heavy_ammoniacal_water_mountains', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianMountainsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + event.add('tfg:heavy_ammoniacal_water_rusticus_hills', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianRusticusHillsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + event.add('tfg:heavy_ammoniacal_water_rusticus_plains', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianRusticusPlainsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + event.add('tfg:heavy_ammoniacal_water_sangnum_hills', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianSangnumHillsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + event.add('tfg:heavy_ammoniacal_water_sangnum_plains', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('tfg:heavy_ammoniacal_water').fluid) + vein.biomes(20, martianSangnumPlainsResourceKey) + vein.weight(0) + vein.minimumYield(100) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(5) + }) + + // Ammonia + + event.add('tfg:ammonia_mars_oasis', vein => { + vein.dimensions('ad_astra:mars') + vein.fluid(() => Fluid.of('gtceu:ammonia').fluid) + vein.biomes(400, martianOasisResourceKey) + vein.weight(0) + vein.minimumYield(300) + vein.maximumYield(650) + vein.depletionAmount(1) + vein.depletionChance(20) + vein.depletedYield(20) + }) + } \ No newline at end of file diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 4d7fc9cf0..03055afe0 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1362,7 +1362,7 @@ const registerGTCEURecipes = (event) => { 'ADA', 'BCB' ], { - A: '#gtceu:circuits/iv', + A: '#gtceu:circuits/ev', B: 'gtceu:ev_electric_motor', C: 'gtceu:aluminium_single_cable', D: 'gtceu:ev_centrifuge', @@ -1399,4 +1399,32 @@ const registerGTCEURecipes = (event) => { event.replaceOutput({ id: 'gtceu:cutter/treated_button' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') event.replaceOutput({ id: 'gtceu:cutter/treated_button_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') event.replaceOutput({ id: 'gtceu:cutter/treated_button_distilled_water' }, 'gtceu:treated_wood_button', '6x gtceu:treated_wood_button') + + //#region Replace Recipe + + event.remove({ id : 'gtceu:assembly_line/me_pattern_buffer_proxy'}) + event.recipes.gtceu.assembly_line('tfg:me_pattern_buffer_proxy') + .itemInputs( + 'gtceu:luv_machine_hull', + '2x gtceu:luv_sensor', + '#gtceu:circuits/luv', + 'gtceu:fusion_glass', + '2x ae2:quantum_ring', + '32x gtceu:fine_europium_wire', + '32x gtceu:fine_europium_wire', + '16x megacells:accumulation_processor') + .inputFluids(Fluid.of('gtceu:lubricant', 500)) + .inputFluids(Fluid.of('tfg:cryogenized_fluix', 144*4)) + .stationResearch(b => b.researchStack(Item.of('gtceu:me_pattern_buffer')).EUt(GTValues.VA[GTValues.LuV]).CWUt(32)) + .itemOutputs('gtceu:me_pattern_buffer_proxy') + .duration(30*20) + .EUt(GTValues.VA[GTValues.ZPM]) + + event.replaceInput({ id: 'gtceu:assembly_line/me_pattern_buffer' }, 'ae2:pattern_provider', '3x expatternprovider:ex_pattern_provider') + event.replaceInput({ id: 'gtceu:assembly_line/me_pattern_buffer' }, 'ae2:interface', '3x expatternprovider:oversize_interface') + + event.replaceInput({ id: 'gtceu:shaped/large_combustion_engine' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') + event.replaceInput({ id: 'gtceu:shaped/nano_chestplate_advanced' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') + event.replaceInput({ id: 'gtceu:assembler/ev_large_miner' }, '#gtceu:circuits/iv', '#gtceu:circuits/ev') + } diff --git a/kubejs/server_scripts/gregtech/recipes.machines.js b/kubejs/server_scripts/gregtech/recipes.machines.js index 4103eed3f..0131d3b0e 100644 --- a/kubejs/server_scripts/gregtech/recipes.machines.js +++ b/kubejs/server_scripts/gregtech/recipes.machines.js @@ -690,38 +690,6 @@ function registerGTCEuMachineRecipes(event) { ["scannerResearch(java.util.function.UnaryOperator)"](b => b.researchStack(Item.of('gtceu:computer_monitor_cover')).EUt(GTValues.VA[GTValues.IV]).duration(120 * 20)) - event.remove({ id: 'gtceu:assembly_line/me_pattern_buffer' }) - event.recipes.gtceu.assembly_line('me_pattern_buffer') - .itemInputs('gtceu:luv_dual_input_hatch', - 'gtceu:luv_emitter', - '4x #gtceu:circuits/luv', - '3x ae2:pattern_provider', - '3x ae2:interface', - '4x ae2:speed_card', - '2x ae2:capacity_card', - '64x #forge:fine_wires/europium', - '32x #forge:fine_wires/europium') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 576), Fluid.of('gtceu:lubricant', 500)) - .itemOutputs('gtceu:me_pattern_buffer') - .duration(30 * 20) - .EUt(GTValues.VA[GTValues.LuV]) - ["scannerResearch(java.util.function.UnaryOperator)"](b => - b.researchStack(Item.of('gtceu:luv_dual_input_hatch')).EUt(GTValues.VA[GTValues.LuV]).duration(60 * 20)) - - event.remove({ id: 'gtceu:assembly_line/me_pattern_buffer_proxy' }) - event.recipes.gtceu.assembly_line('me_pattern_buffer_proxy') - .itemInputs('gtceu:luv_machine_hull', - '2x gtceu:luv_sensor', - '#gtceu:circuits/luv', - 'ae2:quantum_link', - '2x ae2:quantum_ring', - '64x #forge:fine_wires/europium') - .inputFluids(Fluid.of('gtceu:soldering_alloy', 576), Fluid.of('gtceu:lubricant', 500)) - .itemOutputs('gtceu:me_pattern_buffer_proxy') - .duration(30 * 20) - .EUt(GTValues.VA[GTValues.ZPM]) - .stationResearch(b => b.researchStack(Item.of('gtceu:me_pattern_buffer')).EUt(GTValues.VA[GTValues.LuV]).CWUt(32)) - event.remove({ id: 'gtceu:assembly_line/ultimate_battery' }) event.recipes.gtceu.assembly_line('ultimate_battery') .itemInputs('16x #forge:double_plates/darmstadtium', @@ -896,48 +864,7 @@ function registerGTCEuMachineRecipes(event) { event.replaceOutput({ id: 'gtceu:macerator/macerate_steam_input_hatch' }, 'gtceu:steel_dust', '6x gtceu:steel_dust') event.replaceOutput({ id: 'gtceu:arc_furnace/arc_steam_input_hatch' }, 'gtceu:steel_block', '6x gtceu:steel_ingot') - // #region Bedrock Miner - - event.recipes.gtceu.assembler('gtceu:mv_bedrock_miner') - .itemInputs('1x gtceu:hv_machine_hull', - '4x #forge:frames/steel', - '4x #gtceu:circuits/iv', - '4x gtceu:hv_electric_motor', - '4x gtceu:hv_robot_arm', - '4x gtceu:hv_conveyor_module', - '4x #forge:gears/blue_steel') - .itemOutputs('gtceu:mv_bedrock_ore_miner') - .duration(400) - .EUt(GTValues.VA[GTValues.HV]) - .circuit(2) - - event.recipes.gtceu.assembler('gtceu:hv_bedrock_miner') - .itemInputs('1x gtceu:ev_machine_hull', - '4x #forge:frames/titanium', - '4x #gtceu:circuits/luv', - '4x gtceu:luv_electric_motor', - '4x gtceu:luv_robot_arm', - '4x gtceu:luv_conveyor_module', - '4x #forge:gears/ruridit') - .itemOutputs('gtceu:hv_bedrock_ore_miner') - .duration(400) - .EUt(GTValues.VA[GTValues.IV]) - .circuit(2) - - event.recipes.gtceu.assembler('gtceu:ev_bedrock_miner') - .itemInputs('1x gtceu:iv_machine_hull', - '4x #forge:frames/tungsten_steel', - '4x #gtceu:circuits/zpm', - '4x gtceu:zpm_electric_motor', - '4x gtceu:zpm_robot_arm', - '4x gtceu:zpm_conveyor_module', - '4x #forge:gears/osmiridium') - .itemOutputs('gtceu:ev_bedrock_ore_miner') - .duration(400) - .EUt(GTValues.VA[GTValues.ZPM]) - .circuit(2) - - //#endregion + //#region Chipboard Composite event.recipes.gtceu.mixer('gtceu:chipboard_composite_wax') .itemInputs('2x #tfg:wood_dusts', @@ -1027,6 +954,30 @@ function registerGTCEuMachineRecipes(event) { .duration(2.5 * 20) .EUt(16) + event.recipes.gtceu.assembler('tfg:casings/machine_casing_stainless_evaporation') + .itemInputs('gtceu:clean_machine_casing', '4x gtceu:annealed_copper_double_wire') + .inputFluids(Fluid.of('gtceu:polyvinyl_chloride', 288)) + .itemOutputs('tfg:casings/machine_casing_stainless_evaporation') + .circuit(4) + .duration(2.5 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.assembler('tfg:casings/machine_casing_mars') + .itemInputs('gtceu:clean_machine_casing', '4x #forge:double_wires/kanthal') + .inputFluids(Fluid.of('gtceu:polybenzimidazole', 288)) + .itemOutputs('tfg:casings/machine_casing_mars') + .circuit(4) + .duration(2.5 * 20) + .EUt(GTValues.VA[GTValues.HV]) + + event.recipes.gtceu.assembler('gtceu:atomic_casing') + .itemInputs('4x #forge:dense_plates/lead', '2x #forge:plates/rtm_alloy', '#forge:frames/titanium') + .inputFluids(Fluid.of('gtceu:polyvinyl_butyral', 288)) + .itemOutputs('2x gtceu:atomic_casing') + .circuit(4) + .duration(2.5 * 20) + .EUt(GTValues.VA[GTValues.HV]) + //#endregion //#region Large Solar Panel @@ -1151,4 +1102,149 @@ function registerGTCEuMachineRecipes(event) { .EUt(-(GTValues.V[GTValues.LuV]), 2) .circuit(2) + //#endregion + + //#region Mars Ore Line + + // Multiblock + + /* LOCKED UNTIL VENUS + + event.shaped( + 'gtceu:extraterrestrial_ore_fabricator', + [ 'USU', + 'WZW', + 'PTP'], + { + S: 'tfg:casings/machine_casing_vacuum_engine_intake', + Z: 'gtceu:iv_machine_hull', + W: '#gtceu:circuits/iv', + U: '#forge:double_plates/stellite_100', + T: '#forge:single_cables/platinum', + P: 'gtceu:iv_electric_pump' + } + ).id('gtceu:shaped/extraterrestrial_ore_fabricator') + + */ + + event.recipes.gtceu.assembler('tfg:ostrum_harvester') + .itemInputs( + '1x gtceu:ev_machine_hull', + '4x #gtceu:circuits/ev', + '4x gtceu:ev_electric_motor', + '4x #forge:rotors/black_steel', + '4x gtceu:ev_electric_pump', + '4x #forge:gears/desh') + .itemOutputs('gtceu:ostrum_harvester') + .duration(400) + .EUt(GTValues.VA[GTValues.EV]) + .circuit(2) + + event.recipes.gtceu.assembler('tfg:moon_dust_harvester') + .itemInputs( + '1x gtceu:hv_machine_hull', + '4x #gtceu:circuits/hv', + '4x gtceu:hv_electric_motor', + '4x #forge:rotors/titanium', + '4x gtceu:hv_electric_pump', + '4x #forge:gears/rocket_alloy_t1') + .itemOutputs('gtceu:moon_dust_harvester') + .duration(400) + .EUt(GTValues.VA[GTValues.HV]) + .circuit(2) + + // Vacuum Intake + + event.shaped( + 'tfg:casings/machine_casing_vacuum_engine_intake', + [ 'USU', + 'WZW', + 'UTU'], + { + S: '#forge:tools/hammers', + T: '#forge:tools/wrenches', + W: '#forge:rotors/ultimet', + U: 'gtceu:ultimet_normal_item_pipe', + Z: 'gtceu:inert_machine_casing' + } + ).id('tfg:shaped/casing_machine_casing_vacuum_engine_intake') + + event.recipes.gtceu.assembler('tfg:casings/machine_casing_vacuum_engine_intake') + .itemInputs( + '2x #forge:rotors/ultimet', + '4x gtceu:ultimet_normal_item_pipe', + '1x gtceu:inert_machine_casing') + .itemOutputs('tfg:casings/machine_casing_vacuum_engine_intake') + .duration(50) + .EUt(GTValues.VH[GTValues.LV]) + .circuit(2) + + // Stainless Evaporation Tower - LOCKED UNTIL VENUS + + /* + + event.shaped( + 'gtceu:evaporation_tower', + [ 'TUT', + 'WZW', + 'TUT'], + { + T: '#gtceu:circuits/ev', + W: 'gtceu:hv_electric_pump', + U: '#forge:double_wires/kanthal', + Z: 'gtceu:hv_machine_hull' + } + ).id('tfg:shaped/evaporation_tower') + + */ + + //#endregion + + //#region Nuclear Controler - LOCKED UNTIL MARS + + /* + + event.shaped( + 'gtceu:fission_reactor', + [ 'TUT', + 'WZW', + 'TUT'], + { + T: 'gtceu:atomic_casing', + W: '#gtceu:circuits/ev', + U: 'gtceu:hv_field_generator', + Z: 'gtceu:ev_machine_hull' + } + ).id('tfg:shaped/fission_reactor') + + event.shaped( + 'gtceu:nuclear_fuel_factory', + [ 'TUT', + 'WZW', + 'TBT'], + { + T: 'gtceu:atomic_casing', + W: '#gtceu:circuits/ev', + U: 'gtceu:ev_emitter', + Z: 'gtceu:ev_machine_hull', + B: 'gtceu:ev_robot_arm' + } + ).id('tfg:shaped/nuclear_fuel_factory') + + event.shaped( + 'gtceu:heat_exchanger', + [ 'TUT', + 'WZW', + 'TBT'], + { + T: 'gtceu:high_temperature_smelting_casing', + W: '#gtceu:circuits/ev', + U: 'gtceu:ev_sensor', + Z: 'gtceu:ev_machine_hull', + B: 'gtceu:ev_fluid_regulator' + } + ).id('tfg:shaped/heat_exchanger') + + */ + } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.js b/kubejs/server_scripts/tfg/recipes.js index 855d8b072..17bde7c41 100644 --- a/kubejs/server_scripts/tfg/recipes.js +++ b/kubejs/server_scripts/tfg/recipes.js @@ -21,5 +21,7 @@ const registerTFGRecipes = (event) => { registerTFGStoneDustRecipes(event) registerTFGRecyclingRecipes(event) registerTFGNuclearRecipes(event) + registerTFGMarsRecipes(event) + registerTFGMoonOres(event) } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.mars.js b/kubejs/server_scripts/tfg/recipes.mars.js new file mode 100644 index 000000000..1d1cbebd9 --- /dev/null +++ b/kubejs/server_scripts/tfg/recipes.mars.js @@ -0,0 +1,72 @@ + function registerTFGMarsRecipes(event) { + +const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + // Ostrum Harvester + + event.recipes.gtceu.ostrum_harvester(`ostrum_harvesting`) + .perTick(true) + .inputFluids('gtceu:drilling_fluid 4') + .perTick(false) + .dimension('ad_astra:mars') + .itemOutputsRanged('gtceu:ostrum_dust',1,5) + .duration(20*5) + .EUt(GTValues.VA[GTValues.LV]); + + // Large Centrifuge Ostrum dust - SCRAP FROM MARS GOING TO VENUS + + /* + + event.recipes.gtceu.centrifuge(`ostrum_harvesting`) + .inputFluids('gtceu:bromine 100') + .itemInputs('#forge:dusts/ostrum') + .dimension('ad_astra:mars') + .chancedFluidOutputLogic($ChanceLogic.XOR) + .chancedFluidOutput('gtceu:lightweight_ostrum_vapor',6000,0) + .chancedFluidOutput('gtceu:ostrum_vapor',3000,0) + .chancedFluidOutput('gtceu:dense_ostrum_vapor',1000,0) + .duration(20*58) + .EUt(GTValues.VA[GTValues.EV], 4); + +event.recipes.gtceu.extraterrestrial_ore_fabricator('lightweight_ostrum') + .inputFluids('gtceu:lightweight_ostrum_vapor 1000') + .inputFluids(Fluid.of('gtceu:radon', 1000)) + .itemOutputsRanged('#forge:crushed_ores/tantalite',1,10) + .itemOutputsRanged('#forge:crushed_ores/bauxite',1,10) + //.itemOutputsRanged('#forge:crushed_ores/pyrope',1,10) + //.itemOutputsRanged('#forge:crushed_ores/rose_quartz',1,10) + .itemOutputsRanged('#forge:crushed_ores/thorium',1,10) + //.itemOutputsRanged(Item.of('gtceu:crushed_ruby_ore'),1,10) + .dimension('ad_astra:venus') + .duration(20*5) + .EUt(GTValues.VA[GTValues.IV]); + +event.recipes.gtceu.extraterrestrial_ore_fabricator('ostrum') + .inputFluids('gtceu:ostrum_vapor 1000') + .inputFluids(Fluid.of('gtceu:residual_radioactive_concoction', 1000)) + .itemOutputsRanged(Item.of('gtceu:crushed_chromite_ore'),1,10) + //.itemOutputsRanged(Item.of('gtceu:crushed_malachite_ore'),1,10) + .itemOutputsRanged(Item.of('gtceu:crushed_quartzite_ore'),1,10) + //.itemOutputsRanged(Item.of('gtceu:crushed_gypsum_ore'),1,10) + .itemOutputsRanged(Item.of('gtceu:crushed_electrotine_ore'),1,10) + //.itemOutputsRanged(Item.of('gtceu:crushed_barite_ore'),1,10) + .dimension('ad_astra:venus') + .duration(20*5) + .EUt(GTValues.VA[GTValues.IV]); + +event.recipes.gtceu.extraterrestrial_ore_fabricator('dense_ostrum') + .inputFluids('gtceu:dense_ostrum_vapor 1000') + .inputFluids(Fluid.of('gtceu:tritiated_water', 500)) + .itemOutputsRanged('#forge:crushed_ores/uraninite',1,10) + .itemOutputsRanged(Item.of('gtceu:crushed_certus_quartz_ore'),1,10) + .itemOutputsRanged(Item.of('gtceu:crushed_beryllium_ore'),1,10) + //.itemOutputsRanged(Item.of('gtceu:crushed_bastnasite_ore'),1,10) + //.itemOutputsRanged(Item.of('gtceu:crushed_spessartine_ore'),1,10) + //.itemOutputsRanged(Item.of('gtceu:crushed_silver_ore'),1,10) + .dimension('ad_astra:venus') + .duration(20*5) + .EUt(GTValues.VA[GTValues.IV]); + + */ + + } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index d12eb97b4..21692b19b 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -825,7 +825,7 @@ function registerTFGMiscellaneousRecipes(event) { event.recipes.gtceu.assembler('sensor_iv') .itemInputs('gtceu:quantum_eye', '#forge:rods/iridium', '#gtceu:circuits/iv', '4x #forge:plates/tungsten_steel') - .itemOutputs('gtceu:ev_sensor') + .itemOutputs('gtceu:iv_sensor') .duration(100) .EUt(30) diff --git a/kubejs/server_scripts/tfg/recipes.moon_ores.js b/kubejs/server_scripts/tfg/recipes.moon_ores.js new file mode 100644 index 000000000..a110ed7c6 --- /dev/null +++ b/kubejs/server_scripts/tfg/recipes.moon_ores.js @@ -0,0 +1,131 @@ +// priority: 0 + +function registerTFGMoonOres(event) { + +//#region Moon Harvester + + event.recipes.gtceu.moon_dust_harvester('tfg:lunar_assurine_harvester') + .biome('tfg:moon/lunar_asurine_dense') + .itemOutputsRanged('#forge:dusts/certus_regolith',1,5) + .duration(20*80) + .EUt(GTValues.VA[GTValues.LV]) + .circuit(1) + + event.recipes.gtceu.moon_dust_harvester('tfg:lunar_chorus_dense') + .biome('tfg:moon/lunar_chorus_dense') + .itemOutputsRanged('#forge:dusts/goethe_regolith',1,5) + .duration(20*80) + .EUt(GTValues.VA[GTValues.LV]) + .circuit(2) + + event.recipes.gtceu.moon_dust_harvester('tfg:lunar_corals_dense') + .biome('tfg:moon/lunar_corals_dense') + .itemOutputsRanged('#forge:dusts/bright_regolith',1,5) + .duration(20*80) + .EUt(GTValues.VA[GTValues.LV]) + .circuit(3) + + event.recipes.gtceu.moon_dust_harvester('tfg:lunar_lights_dense') + .biome('tfg:moon/lunar_lights_dense') + .itemOutputsRanged('#forge:dusts/cassiterite_regolith',1,5) + .duration(20*80) + .EUt(GTValues.VA[GTValues.LV]) + .circuit(4) + + //#endregion + + //#region Regolith Vapor Processing + + event.recipes.gtceu.mixer('tfg:regolith_slurry_suspension') + .itemInputs('ad_astra:moon_sand', 'tfg:dry_ice') + .itemOutputs('#forge:dusts/regolith_mush') + .dimension('ad_astra:moon') + .duration(20*60) + .EUt(GTValues.VA[GTValues.LV]) + + event.recipes.gtceu.chemical_bath('tfg:regolith_vapor') + .itemInputs('#forge:dusts/regolith_mush') + .inputFluids('gtceu:nitrogen 1000') + .itemOutputs('#forge:dusts/silicon_dioxide') + .outputFluids('gtceu:regolith_vapor 1000') + .dimension('ad_astra:moon') + .duration(20*28) + .EUt(GTValues.VHA[GTValues.LV]) + + //#endregion + + //#region Making Dusty Ores + +const $ChanceLogic = Java.loadClass('com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic') + + event.recipes.gtceu.chemical_reactor('tfg:dusty_certus_reactor') + .itemInputs('#forge:dusts/certus_regolith') + .inputFluids('gtceu:regolith_vapor 100') + .itemOutputs('gtceu:dusty_raw_certus_quartz') + .dimension('ad_astra:moon') + .duration(20*68) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor('tfg:dusty_goethite_reactor') + .itemInputs('#forge:dusts/goethe_regolith') + .inputFluids('gtceu:regolith_vapor 100') + .itemOutputs('gtceu:dusty_raw_goethite') + .dimension('ad_astra:moon') + .duration(20*68) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor('tfg:dusty_shiny_reactor') + .itemInputs('#forge:dusts/bright_regolith') + .inputFluids('gtceu:regolith_vapor 100') + .chancedItemOutputLogic($ChanceLogic.XOR) + .chancedOutput('gtceu:dusty_raw_diamond',2000,0) + .chancedOutput('gtceu:dusty_raw_gold',8000,0) + .dimension('ad_astra:moon') + .duration(20*68) + .EUt(GTValues.VHA[GTValues.ULV]) + + event.recipes.gtceu.chemical_reactor('tfg:dusty_cassiterite_reactor') + .itemInputs('#forge:dusts/cassiterite_regolith') + .inputFluids('gtceu:regolith_vapor 100') + .itemOutputs('gtceu:dusty_raw_cassiterite') + .dimension('ad_astra:moon') + .duration(20*68) + .EUt(GTValues.VHA[GTValues.ULV]) + + //#endregion + + //#region Dusty to Dust through centrifuge + + event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_certus_quartz') + .itemInputs('gtceu:dusty_raw_certus_quartz') + .itemOutputs('ae2:certus_quartz_dust') + .duration(20*45) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_goethite') + .itemInputs('gtceu:dusty_raw_goethite') + .chancedItemOutputLogic($ChanceLogic.XOR) + .chancedOutput('gtceu:iron_dust',5000,0) + .chancedOutput('gtceu:copper_dust',5000,0) + .duration(20*45) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_diamond') + .itemInputs('gtceu:dusty_raw_diamond') + .itemOutputs('gtceu:diamond_dust') + .duration(20*45) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_gold') + .itemInputs('gtceu:dusty_raw_gold') + .itemOutputs('gtceu:gold_dust') + .duration(20*45) + .EUt(GTValues.VA[GTValues.MV]) + + event.recipes.gtceu.centrifuge('tfg:dusty_to_dust_tin') + .itemInputs('gtceu:dusty_raw_cassiterite') + .itemOutputs('gtceu:tin_dust') + .duration(20*45) + .EUt(GTValues.VA[GTValues.MV]) + +} \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.nuclear.js b/kubejs/server_scripts/tfg/recipes.nuclear.js index 9d4aa903d..376743188 100644 --- a/kubejs/server_scripts/tfg/recipes.nuclear.js +++ b/kubejs/server_scripts/tfg/recipes.nuclear.js @@ -47,13 +47,20 @@ function registerTFGNuclearRecipes(event) { //#region Mars Water - event.recipes.gtceu.electrolyzer('mars_water') - .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) + event.recipes.gtceu.centrifuge('mars_heavy_water') + .inputFluids(Fluid.of('tfg:heavy_ammoniacal_water', 1000)) .outputFluids(Fluid.of('gtceu:heavy_water', 500)) .itemOutputs('#forge:dusts/ammonium_chloride', '2x #forge:small_dusts/ammonium_chloride') .duration(20*9) .EUt(GTValues.VA[GTValues.LV]) + event.recipes.gtceu.centrifuge('mars_semiheavy_water') + .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 1000)) + .outputFluids(Fluid.of('minecraft:water', 500)) + .itemOutputs('2x #forge:tiny_dusts/ammonium_chloride') + .duration(20*9) + .EUt(GTValues.VA[GTValues.MV]) + // Martian Sludge event.recipes.gtceu.chemical_bath('dirty_hexafluorosilicic_acid') @@ -77,7 +84,7 @@ function registerTFGNuclearRecipes(event) { .inputFluids(Fluid.of('gtceu:martian_sludge', 1000)) .inputFluids(Fluid.of('gtceu:formamide', 1000)) .inputFluids(Fluid.of('gtceu:radioactive_waste', 1000)) - .outputFluids(Fluid.of('gtceu:radon', 100)) + .outputFluids(Fluid.of('gtceu:radon', 1000)) .itemOutputs('#forge:dusts/nuclear_residue') .duration(20*30) .EUt(GTValues.VA[GTValues.EV]) @@ -85,7 +92,7 @@ function registerTFGNuclearRecipes(event) { event.recipes.gtceu.vacuum_freezer('oxidized_nuclear_residue') .itemInputs('#forge:dusts/nuclear_residue') .inputFluids(Fluid.of('gtceu:dioxygen_difluoride', 1000)) - .outputFluids(Fluid.of('minecraft:water', 10)) + .outputFluids(Fluid.of('gtceu:residual_radioactive_concoction', 1000)) .itemOutputs('#forge:dusts/oxidized_nuclear_residue') .duration(20*5) .EUt(GTValues.VA[GTValues.IV]) @@ -201,19 +208,27 @@ function registerTFGNuclearRecipes(event) { event.recipes.gtceu.gas_turbine('dense_steam') .inputFluids(Fluid.of('gtceu:dense_steam', 1)) - .EUt(-(32*4)) + .EUt(-(32)) .duration(20*2) //#endregion - //#region FLiBe Line + //#region FLiBe Line - SCRAP FROM MARS TO VENUS - event.recipes.gtceu.evaporation_tower('raw_rich_brine') + /* + + event.recipes.gtceu.evaporation_tower('raw_rich_brine_earth') .inputFluids(Fluid.of('tfc:spring_water', 20000)) .outputFluids(Fluid.of('gtceu:raw_rich_brine', 1000)) .duration(20*50) .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.evaporation_tower('raw_rich_brine_mars') + .inputFluids(Fluid.of('tfg:heavy_ammoniacal_water', 20000)) + .outputFluids(Fluid.of('gtceu:raw_rich_brine', 1000)) + .duration(20*50) + .EUt(GTValues.VA[GTValues.EV]) + event.recipes.gtceu.chemical_reactor('hydrogen_iodide_to_hot_iodine_brine') .inputFluids(Fluid.of('gtceu:hydrogen_iodide', 1000)) .inputFluids(Fluid.of('gtceu:raw_rich_brine', 1000)) @@ -283,9 +298,13 @@ function registerTFGNuclearRecipes(event) { .duration(20*36) .EUt(GTValues.VA[GTValues.IV]) + */ + //#endregion - //#region Bromine Line + //#region Bromine Line - SCRAP FROM MARS TO VENUS + + /* event.recipes.gtceu.evaporation_tower('evaporation_brine') .inputFluids(Fluid.of('tfc:salt_water', 20000)) @@ -293,6 +312,12 @@ function registerTFGNuclearRecipes(event) { .duration(20*50) .EUt(GTValues.VA[GTValues.HV]) + event.recipes.gtceu.evaporation_tower('evaporation_brine_mars') + .inputFluids(Fluid.of('tfg:semiheavy_ammoniacal_water', 20000)) + .outputFluids(Fluid.of('gtceu:raw_brine', 1000)) + .duration(20*50) + .EUt(GTValues.VA[GTValues.HV]) + event.recipes.gtceu.fluid_heater('heat_brine') .inputFluids(Fluid.of("gtceu:raw_brine", 1000)) .outputFluids(Fluid.of("gtceu:hot_brine", 1000)) @@ -398,4 +423,6 @@ function registerTFGNuclearRecipes(event) { .duration(20*25) .EUt(GTValues.VA[GTValues.HV]) + */ + } \ No newline at end of file diff --git a/kubejs/server_scripts/tfg/recipes.space.js b/kubejs/server_scripts/tfg/recipes.space.js index 494d4dfd4..186d1ffb8 100644 --- a/kubejs/server_scripts/tfg/recipes.space.js +++ b/kubejs/server_scripts/tfg/recipes.space.js @@ -287,7 +287,7 @@ function registerTFGSpaceRecipes(event) { 'CHC', 'NEN' ], { - C: '#gtceu:circuits/iv', + C: '#gtceu:circuits/ev', S: 'gtceu:hv_sensor', E: 'gtceu:hv_emitter', H: 'gtceu:ev_machine_hull', diff --git a/kubejs/server_scripts/tfg/recipes.terrariums.js b/kubejs/server_scripts/tfg/recipes.terrariums.js index 68c5e64fe..2bc2b6a0e 100644 --- a/kubejs/server_scripts/tfg/recipes.terrariums.js +++ b/kubejs/server_scripts/tfg/recipes.terrariums.js @@ -150,14 +150,7 @@ function registerTFGTerrariumRecipes(event) { }).id('tfg:shaped/end_crystal') // chorus fruit - - event.recipes.gtceu.large_chemical_reactor('tfg:kovarex') - .itemInputs('40x gtceu:uranium_235_dust', '5x gtceu:uranium_dust') - .itemOutputs('41x gtceu:uranium_235_dust', '2x gtceu:uranium_dust') - .duration(600) - .EUt(GTValues.VA[GTValues.LuV]) - .circuit(2) - + // end stone diff --git a/kubejs/startup_scripts/ad_astra/materials.js b/kubejs/startup_scripts/ad_astra/materials.js index f9282a9fd..37ac4831b 100644 --- a/kubejs/startup_scripts/ad_astra/materials.js +++ b/kubejs/startup_scripts/ad_astra/materials.js @@ -41,7 +41,6 @@ const registerAdAstraMaterials = (event) => { .color(0xbd7980) .secondaryColor(0xA66C8D) .iconSet(GTMaterialIconSet.getByName('tfc_cassiterite')) - .dust() .ingot() .liquid() .blastTemp(2900, 'mid', GTValues.VA[GTValues.HV]) diff --git a/kubejs/startup_scripts/gtceu/constants.js b/kubejs/startup_scripts/gtceu/constants.js index fcc65cafb..161d0b996 100644 --- a/kubejs/startup_scripts/gtceu/constants.js +++ b/kubejs/startup_scripts/gtceu/constants.js @@ -183,7 +183,12 @@ global.GTCEU_DISABLED_ITEMS = [ 'gtceu:mossy_marble_cobblestone', 'gtceu:marble_bricks', 'gtceu:cracked_marble_bricks', - 'gtceu:mossy_marble_bricks' + 'gtceu:mossy_marble_bricks', + + // Machine Bedrock Miner + 'gtceu:mv_bedrock_ore_miner', + 'gtceu:hv_bedrock_ore_miner', + 'gtceu:ev_bedrock_ore_miner' ]; //#endregion diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 6ed68ad78..66cf74285 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -4,6 +4,7 @@ const registerGTCEuMachines = (event) => { const $SteamMulti = Java.loadClass('com.gregtechceu.gtceu.common.machine.multiblock.steam.SteamParallelMultiblockMachine'); const $Tags = Java.loadClass("dev.latvian.mods.kubejs.util.Tags") + const CoilWorkableElectricMultiblockMachine = Java.loadClass("com.gregtechceu.gtceu.api.machine.multiblock.CoilWorkableElectricMultiblockMachine") //#region Nether Dome @@ -561,4 +562,133 @@ const registerGTCEuMachines = (event) => { 'gtceu:block/casings/solid/machine_casing_stainless_evaporation', 'gtceu:block/multiblock/distillation_tower') -} + //#endregion + + //#region Ore Line + + // Ostrum Harvester + + event.create('ostrum_harvester', 'multiblock') + .machine((holder) => new CoilWorkableElectricMultiblockMachine(holder)) + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('ostrum_harvester') + .recipeModifiers([GTRecipeModifiers.OC_NON_PERFECT, (machine, recipe) => GTRecipeModifiers.crackerOverclock(machine, recipe)]) + .appearanceBlock(() => Block.getBlock('gtceu:nonconducting_casing')) + .pattern(definition => FactoryBlockPattern.start() + .aisle(' ' ,'A A', 'AAAAA', 'ACCCA', 'AAEAA', ' AAA ') + .aisle(' ' ,' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') + .aisle(' ' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ') + .aisle(' G ' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ') + .aisle(' ' ,' ', 'ADDDA', 'D D', 'A A', ' BFB ') + .aisle(' ' ,' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') + .aisle(' ' ,'A A', 'AAAAA', 'ACXCA', 'AACAA', ' AAA ') + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('gtceu:secure_maceration_casing')) + .where('B', Predicates.blocks('gtceu:nonconducting_casing')) + .where('C', Predicates.blocks('gtceu:nonconducting_casing') + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(1).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setMaxGlobalLimited(1).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMaxGlobalLimited(2).setPreviewCount(2)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1).setPreviewCount(1))) + .where('D', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake')) + .where('E', Predicates.blocks('gtceu:nonconducting_casing') + .or(Predicates.abilities(PartAbility.MUFFLER).setExactLimit(1).setPreviewCount(1))) + .where('F', Predicates.heatingCoils()) + .where('G', Predicates.blocks('tfg:spice')) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + 'gtceu:block/casings/gcym/nonconducting_casing', + 'gtceu:block/multiblock/distillation_tower') + + // Moon Harvester + + event.create('moon_dust_harvester', 'multiblock') + .machine((holder) => new CoilWorkableElectricMultiblockMachine(holder)) + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('moon_dust_harvester') + .recipeModifiers([GTRecipeModifiers.OC_NON_PERFECT, (machine, recipe) => GTRecipeModifiers.crackerOverclock(machine, recipe)]) + .appearanceBlock(() => Block.getBlock('gtceu:nonconducting_casing')) + .pattern(definition => FactoryBlockPattern.start() + .aisle('A A', 'AAAAA', 'ACCCA', 'AAEAA', ' AAA ') + .aisle(' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') + .aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ') + .aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ') + .aisle(' ', 'ADDDA', 'D D', 'A A', ' BFB ') + .aisle(' ', 'BBBBB', 'B B', 'BB BB', ' BFB ') + .aisle('A A', 'AAAAA', 'ACXCA', 'AACAA', ' AAA ') + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('tfg:casings/machine_casing_iron_desh')) + .where('B', Predicates.blocks('gtceu:nonconducting_casing')) + .where('C', Predicates.blocks('gtceu:nonconducting_casing') + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setMaxGlobalLimited(1).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.EXPORT_ITEMS).setMaxGlobalLimited(1).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2).setPreviewCount(1)) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1).setPreviewCount(1))) + .where('D', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake')) + .where('E', Predicates.blocks('gtceu:nonconducting_casing')) + .where('F', Predicates.heatingCoils()) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .workableCasingModel( + 'gtceu:block/casings/gcym/nonconducting_casing', + 'gtceu:block/multiblock/distillation_tower') + + // Extraterrestrial Ore Fabricator + + event.create('extraterrestrial_ore_fabricator', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('extraterrestrial_ore_fabricator') + .recipeModifiers([GTRecipeModifiers.PARALLEL_HATCH, GTRecipeModifiers.OC_NON_PERFECT]) + .appearanceBlock(() => Block.getBlock('tfg:casings/machine_casing_mars')) + .pattern(definition => FactoryBlockPattern.start() + .aisle('AAAAAAAAA', 'AAAAAAAAA', 'AAAAAAAAA', ' ', ' ' ) + .aisle('BAAAAAAAA', 'B#######D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) + .aisle('AAAAAAAAA', 'A#######D', 'BB###BBGA', ' C###C ', ' BBHBB ' ) + .aisle('BEBEBEAAA', 'BEBEBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) + .aisle('A#####AFA', 'A#####AXA', 'AAAAAAAFA', ' ', ' ' ) + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('A', Predicates.blocks('tfg:casings/machine_casing_mars') + .or(Predicates.abilities(PartAbility.INPUT_ENERGY).setMinGlobalLimited(1).setMaxGlobalLimited(2))) + .where('B', Predicates.blocks('gtceu:high_temperature_smelting_casing')) + .where('C', Predicates.blocks('tfg:casings/machine_casing_vacuum_engine_intake')) + .where('D', Predicates.blocks('gtceu:heat_vent')) + .where('E', Predicates.blocks('tfg:casings/machine_casing_mars') + .or(Predicates.abilities(PartAbility.IMPORT_FLUIDS).setMaxGlobalLimited(6))) + .where('F', Predicates.blocks('tfg:casings/machine_casing_mars') + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) + .where('G', Predicates.abilities(PartAbility.MUFFLER).setExactLimit(1)) + .where('H', Predicates.abilities(PartAbility.EXPORT_ITEMS).setExactLimit(1)) + .where('#', Predicates.air()) + .where(' ', Predicates.any()) + .build() + ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle('KKAAAAAAA', 'AAAAAAAAA', 'AAAAAAAAA', ' ', ' ' ) + .aisle('BAAAAAAAA', 'B D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) + .aisle('AAAAAAAAA', 'A D', 'BB BBGA', ' C C ', ' BBHBB ' ) + .aisle('BEBEBEAAA', 'BEBEBEA#D', 'BBBBBBBAA', ' BCCCB ', ' BBBBB ' ) + .aisle('A AMA', 'A AXA', 'AAAAAAAAA', ' ', ' ' ) + .where('X', controller, Direction.SOUTH) + .where('A', Block.getBlock('tfg:casings/machine_casing_mars')) + .where('B', Block.getBlock('gtceu:high_temperature_smelting_casing')) + .where('C', Block.getBlock('tfg:casings/machine_casing_vacuum_engine_intake')) + .where('D', Block.getBlock('gtceu:heat_vent')) + .where('E', GTMachines.FLUID_IMPORT_HATCH[GTValues.EV], Direction.SOUTH) + .where('G', GTMachines.MUFFLER_HATCH[GTValues.LV], Direction.UP) + .where('H', GTMachines.ITEM_EXPORT_BUS[GTValues.EV], Direction.UP) + .where('M', GTMachines.AUTO_MAINTENANCE_HATCH, Direction.SOUTH) + .where('K', GTMachines.ENERGY_INPUT_HATCH[GTValues.HV], Direction.NORTH) + .where(' ', Block.getBlock('minecraft:air')) + .build() + ) + + .workableCasingModel( + 'tfg:block/casings/machine_casing_mars', + 'gtceu:block/machines/thermal_centrifuge') + +} \ No newline at end of file diff --git a/kubejs/startup_scripts/gtceu/materials.js b/kubejs/startup_scripts/gtceu/materials.js index d066405f5..692a1384e 100644 --- a/kubejs/startup_scripts/gtceu/materials.js +++ b/kubejs/startup_scripts/gtceu/materials.js @@ -29,6 +29,7 @@ const registerGTCEuMaterialModification = (event) => { GENERATE_DOUBLE_INGOTS, HAS_SMALL_TFC_ORE, HAS_SMALL_NATIVE_TFC_ORE, + GENERATE_DUSTY_ORES, } = TFGMaterialFlags const { @@ -166,6 +167,15 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Tin.addFlags(GENERATE_DOUBLE_INGOTS); GTMaterials.Zinc.addFlags(GENERATE_DOUBLE_INGOTS, GENERATE_BOLT_SCREW); GTMaterials.SterlingSilver.addFlags(GENERATE_DOUBLE_INGOTS); + + // /* 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); + // // /* Имеют инструменты, броню TFC, двойные слитки */ GTMaterials.Copper.addFlags(GENERATE_DOUBLE_INGOTS, HAS_TFC_TOOL, HAS_TFC_ARMOR, HAS_TFC_UTILITY, CAN_BE_UNMOLDED); @@ -258,6 +268,9 @@ const registerGTCEuMaterialModification = (event) => { GTMaterials.Silicon.addFlags(GENERATE_DENSE); + GTMaterials.RTMAlloy.addFlags(GENERATE_DENSE); + GTMaterials.Lead.addFlags(GENERATE_DENSE); + GTMaterials.Quartzite.addFlags(GENERATE_ROD); GTMaterials.TreatedWood.addFlags(GENERATE_LONG_ROD); diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index c34118ad5..94554dc48 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -72,4 +72,28 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_DISTILLATION_TOWER, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.BATH) + event.create('ostrum_harvester') + .category('ostrum_harvester') + .setEUIO('in') + .setMaxIOSize(0, 1, 1, 0) + .setSlotOverlay(false, false, GuiTextures.EXTRACTOR_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.JET_ENGINE) + + event.create('moon_dust_harvester') + .category('moon_dust_harvester') + .setEUIO('in') + .setMaxIOSize(1, 1, 0, 0) + .setSlotOverlay(false, false, GuiTextures.DUST_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.JET_ENGINE) + + event.create('extraterrestrial_ore_fabricator') + .category('extraterrestrial_ore_fabricator') + .setEUIO('in') + .setMaxIOSize(0, 6, 2, 0) + .setSlotOverlay(false, false, GuiTextures.EXTRACTOR_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_EXTRACT, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.BATH) + } diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js index c73d7b257..8da674a2a 100644 --- a/kubejs/startup_scripts/tfg/blocks.js +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -32,6 +32,21 @@ const registerTFGBlocks = (event) => { .particleCount(2) .particleForced(false) + event.create('tfg:spice', 'tfg:particle_emitter') + .textureAll('tfg:block/sand_spice') + .soundType('sand') + .hardness(1) + .resistance(1) + .unbreakable() + .tagBlock('tfcambiental:hot_stuff') + .lightLevel(0.1) + .mapColor('color_white') + .particleOffset(0, 2, 0) + .particleVelocity(0.05, 0, 0.05) + .particle('electric_spark') + .particleCount(3) + .particleForced(false) + // #region Machine Casings global.TFG_MACHINE_CASINGS.forEach(type => { @@ -56,6 +71,16 @@ const registerTFGBlocks = (event) => { .tagBlock('minecraft:mineable/wrench') .mapColor('color_light_gray') + event.create('tfg:casings/machine_casing_vacuum_engine_intake', 'gtceu:active') + .simple('tfg:block/casings/machine_casing_vacuum_engine_intake') + .translationKey(`block.tfg.casings.machine_casing_vacuum_engine_intake`) + .soundType('metal') + .resistance(6).hardness(5) + .tagBlock('mineable/pickaxe') + .tagBlock('forge:mineable/wrench') + .requiresTool(true) + .mapColor('color_light_gray') + //#endregion // #region Decorative vases diff --git a/kubejs/startup_scripts/tfg/fluids.js b/kubejs/startup_scripts/tfg/fluids.js index d7e7599e6..a961968dc 100644 --- a/kubejs/startup_scripts/tfg/fluids.js +++ b/kubejs/startup_scripts/tfg/fluids.js @@ -32,6 +32,13 @@ const registerTFGFluids = (event) => { .noBlock() //#region Mars + + event.create('tfg:heavy_ammoniacal_water') + .thinTexture(0x08733f) + .bucketColor(0x08733f) + .temperature(236) + .noBlock() + //#endregion //#region Venus @@ -51,4 +58,5 @@ const registerTFGFluids = (event) => { .temperature(1000) .renderType('translucent') //#endregion + } \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index 6049828a5..b314a0370 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -9,7 +9,6 @@ const registerTFGItems = (event) => { registerTFGDeprecatedItems(event) registerTFGFoodItems(event) - registerTFGNuclearItems(event) // #region Electronics event.create('tfg:unfinished_electron_tube', 'create:sequenced_assembly') @@ -389,4 +388,7 @@ const registerTFGItems = (event) => { event.create('tfg:photo_cell_t1') .translationKey("item.tfg.basic.photovoltaic.cell") .texture('tfg:item/photo_cell_t1') + + //#endregion + } diff --git a/kubejs/startup_scripts/tfg/items.nuclear.js b/kubejs/startup_scripts/tfg/items.nuclear.js deleted file mode 100644 index b7af34d20..000000000 --- a/kubejs/startup_scripts/tfg/items.nuclear.js +++ /dev/null @@ -1,6 +0,0 @@ -// priority: 0 - -function registerTFGNuclearItems(event) { - - -} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/materials.js b/kubejs/startup_scripts/tfg/materials.js index c4c2c0256..9f895bc1f 100644 --- a/kubejs/startup_scripts/tfg/materials.js +++ b/kubejs/startup_scripts/tfg/materials.js @@ -330,4 +330,70 @@ const registerTFGMaterials = (event) => { .gas(new GTFluidBuilder().state(GTFluidState.GAS).temperature(293)) .color(0x82a6ce) .formula('HI') + + //#endregion + + //# Mars Ore Line + + event.create('lightweight_ostrum_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(760)) + .formula('(?)') + + event.create('ostrum_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(815)) + .formula('(?)') + + event.create('dense_ostrum_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(930)) + .formula('(?)') + + event.create('residual_radioactive_concoction') + .liquid(new GTFluidBuilder().customStill().temperature(450)) + .formula('(?)') + + //#endregion + + // Moon Ore Line + + event.create('regolith_vapor') + .gas(new GTFluidBuilder().state(GTFluidState.GAS).customStill().temperature(727)) + + event.create('tfg:certus_regolith') + .dust() + .flags(GTMaterialFlags.NO_UNIFICATION) + .iconSet(GTMaterialIconSet.CERTUS) + .color('0xc1e6e4') + .secondaryColor('0x7a5225') + + event.create('tfg:goethe_regolith') + .dust() + .flags(GTMaterialFlags.NO_UNIFICATION) + .iconSet(GTMaterialIconSet.METALLIC) + .color('0xb0af5b') + .secondaryColor('0x7a5225') + + event.create('tfg:bright_regolith') + .dust() + .flags(GTMaterialFlags.NO_UNIFICATION) + .iconSet(GTMaterialIconSet.SHINY) + .color('0xf0efe9') + .secondaryColor('0xffffff') + + event.create('tfg:cassiterite_regolith') + .dust() + .flags(GTMaterialFlags.NO_UNIFICATION) + .iconSet(GTMaterialIconSet.METALLIC) + .color('0xbab6b7') + .secondaryColor('0x7a5225') + + // Reactant to Ore line + + event.create('tfg:regolith_mush') + .dust() + .flags(GTMaterialFlags.NO_UNIFICATION) + .iconSet(GTMaterialIconSet.WOOD) + .color('0xa2cde0') + .secondaryColor('0x7a5225') + + } diff --git a/kubejs/startup_scripts/tfg/materials.nuclear.js b/kubejs/startup_scripts/tfg/materials.nuclear.js index 3ca41eee1..2adc6678d 100644 --- a/kubejs/startup_scripts/tfg/materials.nuclear.js +++ b/kubejs/startup_scripts/tfg/materials.nuclear.js @@ -129,14 +129,6 @@ const registerTFGNuclearMaterials = (event) => { //#region Dust - event.create('tfg:mars_stone_dust') - .dust() - .components('2x deuterium', '1x oxygen') - .flags(GTMaterialFlags.DISABLE_DECOMPOSITION) - .color(0xE79B07) - .secondaryColor(0x5A4316) - .iconSet(GTMaterialIconSet.ROUGH) - event.create('tfg:nuclear_residue') .dust() .formula('(?)')