From 4af73459754eecccbe0ec25d03d7b2aee551cebd Mon Sep 17 00:00:00 2001 From: Pyritie Date: Thu, 9 Jan 2025 23:13:21 +0000 Subject: [PATCH 01/26] re-enable things for multiblocks dragon egg, end stone, netherrack, nether bricks Signed-off-by: Pyritie --- kubejs/startup_scripts/minecraft/constants.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index 329cfd31d..9275ca1d7 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -83,7 +83,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:prismarine_shard', // Эндстоун - 'minecraft:end_stone', + //'minecraft:end_stone', 'minecraft:end_stone_bricks', 'minecraft:end_stone_brick_stairs', 'minecraft:end_stone_brick_slab', @@ -491,8 +491,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:burn_pottery_sherd', // Шаблоны брони - 'minecraft:wayfinder_armor_trim_smithing_template', - 'minecraft:netherite_upgrade_smithing_template', + /*'minecraft:wayfinder_armor_trim_smithing_template', 'minecraft:dune_armor_trim_smithing_template', 'minecraft:snout_armor_trim_smithing_template', 'minecraft:shaper_armor_trim_smithing_template', @@ -507,7 +506,8 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:raiser_armor_trim_smithing_template', 'minecraft:wild_armor_trim_smithing_template', 'minecraft:sentry_armor_trim_smithing_template', - 'minecraft:ward_armor_trim_smithing_template', + 'minecraft:ward_armor_trim_smithing_template',*/ + 'minecraft:netherite_upgrade_smithing_template', // Свечи 'minecraft:candle', @@ -700,7 +700,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:mushroom_stem', 'minecraft:brown_mushroom_block', 'minecraft:red_mushroom_block', - 'minecraft:dragon_egg', + //'minecraft:dragon_egg', 'minecraft:end_portal_frame', 'minecraft:mushroom_stew', 'minecraft:structure_void', @@ -766,8 +766,8 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:polished_blackstone_brick_stairs', 'minecraft:polished_blackstone_brick_slab', 'minecraft:polished_blackstone_brick_wall', - 'minecraft:netherrack', - 'minecraft:nether_bricks', + //'minecraft:netherrack', + //'minecraft:nether_bricks', 'minecraft:cracked_nether_bricks', 'minecraft:nether_brick_stairs', 'minecraft:nether_brick_slab', From 013c4f4fb5c0f3070d018cda7187f3fde79a5ada Mon Sep 17 00:00:00 2001 From: Pyritie Date: Thu, 9 Jan 2025 23:17:16 +0000 Subject: [PATCH 02/26] new lang strings for the terrariums Signed-off-by: Pyritie --- kubejs/assets/gtceu/lang/en_us.json | 7 ++++++- kubejs/assets/gtceu/lang/ru_ru.json | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index 2aa6312fc..ffc710e1e 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -6,6 +6,11 @@ "block.gtceu.alternator": "Alternator", "gtceu.alternator": "Alternator", + + "block.gtceu.nether_dome": "Netherarium", + "gtceu.nether_dome": "Netherarium", + "block.gtceu.end_dome": "Enderarium", + "gtceu.end_dome": "Enderarium", "material.treated_wood": "Creosote-Treated Wood", "block.gtceu.treated_wood_planks": "Creosote-Treated Wood Planks", @@ -49,4 +54,4 @@ "block.gtceu.luv_kinetic_output_box": "Ludicrous Voltage Kinetic Output Box", "block.gtceu.zpm_kinetic_output_box": "ZPM Voltage Kinetic Output Box", "block.gtceu.uv_kinetic_output_box": "Ultimate Voltage Kinetic Output Box" -} +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/lang/ru_ru.json b/kubejs/assets/gtceu/lang/ru_ru.json index 0b2d775e3..b155c028d 100644 --- a/kubejs/assets/gtceu/lang/ru_ru.json +++ b/kubejs/assets/gtceu/lang/ru_ru.json @@ -6,6 +6,11 @@ "block.gtceu.alternator": "Генератор переменного тока", "gtceu.alternator": "Генератор переменного тока", + + "block.gtceu.nether_dome": "Террариум нижнего мира", + "gtceu.nether_dome": "Террариум нижнего мира", + "block.gtceu.end_dome": "Террариум края", + "gtceu.end_dome": "Террариум края", "material.treated_wood": "Обработанное креозотом дерево", "block.gtceu.treated_wood_planks": "Доски из обработанного креозотом дерева" From 543162157434eb31beed2592f936b5f79f3f150a Mon Sep 17 00:00:00 2001 From: Pyritie Date: Thu, 9 Jan 2025 23:18:10 +0000 Subject: [PATCH 03/26] multiblock definitions Signed-off-by: Pyritie --- kubejs/startup_scripts/gtceu/machines.js | 163 ++++++++++++++++++- kubejs/startup_scripts/gtceu/recipe_types.js | 17 ++ 2 files changed, 179 insertions(+), 1 deletion(-) diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 0a415b613..f6afbb4c8 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -24,7 +24,7 @@ const registerGTCEuMachines = (event) => { ) .workableCasingRenderer('gtceu:block/casings/solid/machine_casing_solid_steel', 'gtceu:block/multiblock/implosion_compressor', false) - event.create('alternator', 'multiblock') + event.create('alternator', 'multiblock') .rotationState(RotationState.NON_Y_AXIS) .recipeType('alternator') .pattern(definition => FactoryBlockPattern.start() @@ -44,4 +44,165 @@ const registerGTCEuMachines = (event) => { "gtceu:block/casings/solid/machine_casing_solid_steel", "gtceu:block/multiblock/implosion_compressor", false ) + + event.create('nether_dome', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('nether_dome') + .appearanceBlock(GTBlocks.CASING_PTFE_INERT) + .pattern(definition => FactoryBlockPattern.start() + .aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle("CBBBBBC", "F#####F", "F#####F", "F#####F", "FTTTTTF", "FQQQQQF") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle(" CCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ") + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('B', Predicates.blocks('tfc:rock/magma/basalt').setMinGlobalLimited(6) + .or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10))) + .where('T', Predicates.blocks('minecraft:glowstone').setMinGlobalLimited(5) + .or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10))) + .where('O', Predicates.blocks('minecraft:obsidian')) + .where('F', Predicates.frames('black_steel')) + .where('Q', Predicates.blocks('ae2:quartz_glass')) + .where('G', Predicates.blocks('minecraft:gold_block') + .or(Predicates.blocks('tfc:rock/raw/basalt')) + .or(Predicates.blocks('tfc:rock/hardened/basalt')) + .or(Predicates.blocks('tfc:rock/bricks/basalt')) + .or(Predicates.blocks('tfc:rock/chiseled/basalt')) + .or(Predicates.blocks('minecraft:obsidian')) + .or(Predicates.blocks('minecraft:nether_bricks'))) + .where('P', Predicates.blocks('minecraft:purple_stained_glass_pane')) + .where('C', Predicates.blocks(GTBlocks.CASING_PTFE_INERT.get()).setMinGlobalLimited(10) + .or(Predicates.autoAbilities(definition.getRecipeTypes())) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) + .where('#', Predicates.air() + .or(Predicates.blocks('minecraft:netherrack')) + .or(Predicates.blocks('tfc:rock/magma/basalt')) + .or(Predicates.blocks('minecraft:glowstone')) + .or(Predicates.blocks('minecraft:nether_bricks'))) + .where(' ', Predicates.any()) + .build() + ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ") + .aisle("CMMMNNC", "Q NQ", "Q Q", "Q Q", "QNTTNNQ", " QQQQQ ") + .aisle("iMMNNNf", "QR Q", "QR Q", "Q T Q", "QNTTTNQ", " QQQQQ ") + .aisle("CNMMMNC", "F NF", "F F", "F F", "FNNTNNF", "FQQQQQF") + .aisle("tNNNMNl", "Q NQ", "Q NQ", "Q Q", "QNNNNNQ", " QQQQQ ") + .aisle("CNNNNNC", "QN NNQ", "Q NQ", "Q NQ", "QNNNNNQ", " QQQQQ ") + .aisle(" mCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ") + .where('X', controller, Direction.SOUTH) + .where('C', GTBlocks.CASING_PTFE_INERT.get()) + .where('N', Block.getBlock('minecraft:netherrack')) + .where('M', Block.getBlock('tfc:rock/magma/basalt')) + .where('T', Block.getBlock('minecraft:glowstone')) + .where('Q', Block.getBlock('ae2:quartz_glass')) + .where('F', Block.getBlock('gtceu:black_steel_frame')) + .where('G', Block.getBlock('minecraft:gold_block')) + .where('O', Block.getBlock('minecraft:obsidian')) + .where('P', Block.getBlock('minecraft:purple_stained_glass_pane')) + .where('R', Block.getBlock('minecraft:nether_bricks')) + .where(' ', Block.getBlock('minecraft:air')) + + .where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH) + .where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST) + .where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST) + .where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST) + .where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST) + .where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.MV], Direction.NORTH) + .build() + ) + .workableCasingRenderer( + "gtceu:block/casings/solid/machine_casing_inert_ptfe", + "gtceu:block/machines/gas_collector", false + ) + + event.create('end_dome', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('end_dome') + .appearanceBlock(GTBlocks.CASING_TITANIUM_STABLE) + .pattern(definition => FactoryBlockPattern.start() + .aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ") + .aisle("CBBBBBC", "FOOEOOF", "FOOOOOF", "FOOOOOF", "FOOOOOF", "PSNNNSP", " G G ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ") + .aisle(" CCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('B', Predicates.blocks('minecraft:end_stone').setMinGlobalLimited(20) + .or(Predicates.blocks('minecraft:black_concrete'))) + .where('O', Predicates.blocks('minecraft:obsidian').setMinGlobalLimited(8) + .or(Predicates.air())) + .where('F', Predicates.frames('titanium')) + .where('Q', Predicates.blocks('ae2:quartz_glass')) + .where('P', Predicates.blocks('gtceu:ender_pearl_block')) + .where('E', Predicates.blocks('minecraft:dragon_egg')) + .where('S', Predicates.blocks('minecraft:end_stone')) + .where('N', Predicates.blocks('minecraft:black_concrete')) + .where('G', Predicates.blocks('tfc:ore/small_malachite') + .or(Predicates.blocks('tfc:ore/small_native_copper')) + .or(Predicates.blocks('tfc:ore/small_native_gold')) + .or(Predicates.blocks('tfc:ore/small_hematite')) + .or(Predicates.blocks('tfc:ore/small_native_silver')) + .or(Predicates.blocks('tfc:ore/small_cassiterite')) + .or(Predicates.blocks('tfc:ore/small_bismuthinite')) + .or(Predicates.blocks('tfc:ore/small_garnierite')) + .or(Predicates.blocks('tfc:ore/small_malachite')) + .or(Predicates.blocks('tfc:ore/small_magnetite')) + .or(Predicates.blocks('tfc:ore/small_limonite')) + .or(Predicates.blocks('tfc:ore/small_sphalerite')) + .or(Predicates.blocks('tfc:ore/small_tetrahedrite'))) + .where('C', Predicates.blocks(GTBlocks.CASING_TITANIUM_STABLE.get()).setMinGlobalLimited(10) + .or(Predicates.autoAbilities(definition.getRecipeTypes())) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) + .where(' ', Predicates.any()) + .build() + ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .aisle("CBBBBBC", "Q O Q", "Q O Q", "Q Q", "Q Q", " QSSSQ ", " 123 ") + .aisle("iBBBBBf", "QO OQ", "QO Q", "QO Q", "Q Q", " SNNNS ", " y 4 ") + .aisle("CBBBBBC", "F E F", "F F", "F F", "F F", "PSNNNSP", " z 5 ") + .aisle("tBBBBNl", "Q O Q", "Q O Q", "Q Q", "Q Q", " SNNNS ", " 0 6 ") + .aisle("CNBBNNC", "Q Q", "Q Q", "Q Q", "Q Q", " QSSSQ ", " 987 ") + .aisle(" mCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .where('X', controller, Direction.SOUTH) + .where('C', GTBlocks.CASING_TITANIUM_STABLE.get()) + .where('B', Block.getBlock('minecraft:end_stone')) + .where('N', Block.getBlock('minecraft:black_concrete')) + .where('O', Block.getBlock('minecraft:obsidian')) + .where('F', Block.getBlock('gtceu:titanium_frame')) + .where('Q', Block.getBlock('ae2:quartz_glass')) + .where(' ', Block.getBlock('minecraft:air')) + .where('S', Block.getBlock('minecraft:end_stone_bricks')) + .where('P', Block.getBlock('gtceu:ender_pearl_block')) + .where('E', Block.getBlock('minecraft:dragon_egg')) + + .where('1', Block.getBlock('tfc:ore/small_native_copper')) + .where('2', Block.getBlock('tfc:ore/small_native_gold')) + .where('3', Block.getBlock('tfc:ore/small_hematite')) + .where('4', Block.getBlock('tfc:ore/small_native_silver')) + .where('5', Block.getBlock('tfc:ore/small_cassiterite')) + .where('6', Block.getBlock('tfc:ore/small_bismuthinite')) + .where('7', Block.getBlock('tfc:ore/small_garnierite')) + .where('8', Block.getBlock('tfc:ore/small_malachite')) + .where('9', Block.getBlock('tfc:ore/small_magnetite')) + .where('0', Block.getBlock('tfc:ore/small_limonite')) + .where('z', Block.getBlock('tfc:ore/small_sphalerite')) + .where('y', Block.getBlock('tfc:ore/small_tetrahedrite')) + + .where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH) + .where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST) + .where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST) + .where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST) + .where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST) + .where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.HV], Direction.NORTH) + .build() + ) + .workableCasingRenderer( + "gtceu:block/casings/solid/machine_casing_stable_titanium", + "gtceu:block/machines/gas_collector", false + ) } \ No newline at end of file diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index eb4144c95..7f6f60476 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -15,5 +15,22 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.ARC) .setMaxTooltips(6) + + + event.create('nether_dome') + .category('nether_dome') + .setEUIO('in') + .setMaxIOSize(1, 1, 1, 1) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.FIRE) + + event.create('end_dome') + .category('end_dome') + .setEUIO('in') + .setMaxIOSize(1, 1, 1, 1) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.FIRE) } From 1707781a0a1bb8d641f35b31b607e724806ae0a2 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:15:19 +0000 Subject: [PATCH 04/26] updated multiblocks Signed-off-by: Pyritie --- kubejs/startup_scripts/gtceu/machines.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index f6afbb4c8..de2de707d 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -123,13 +123,13 @@ const registerGTCEuMachines = (event) => { .recipeType('end_dome') .appearanceBlock(GTBlocks.CASING_TITANIUM_STABLE) .pattern(definition => FactoryBlockPattern.start() - .aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ") .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ") - .aisle("CBBBBBC", "FOOEOOF", "FOOOOOF", "FOOOOOF", "FOOOOOF", "PSNNNSP", " G G ") + .aisle("CBBBBBC", "FOOEOOF", "FOOOOOF", "FOOOOOF", "FOOOOOF", "FSNNNSF", " G G ") .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ") .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ") - .aisle(" CCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .aisle(" CCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") .where('X', Predicates.controller(Predicates.blocks(definition.get()))) .where('B', Predicates.blocks('minecraft:end_stone').setMinGlobalLimited(20) .or(Predicates.blocks('minecraft:black_concrete'))) @@ -137,9 +137,8 @@ const registerGTCEuMachines = (event) => { .or(Predicates.air())) .where('F', Predicates.frames('titanium')) .where('Q', Predicates.blocks('ae2:quartz_glass')) - .where('P', Predicates.blocks('gtceu:ender_pearl_block')) .where('E', Predicates.blocks('minecraft:dragon_egg')) - .where('S', Predicates.blocks('minecraft:end_stone')) + .where('S', Predicates.blocks('tfg:artificial_end_portal_frame')) .where('N', Predicates.blocks('minecraft:black_concrete')) .where('G', Predicates.blocks('tfc:ore/small_malachite') .or(Predicates.blocks('tfc:ore/small_native_copper')) @@ -161,13 +160,13 @@ const registerGTCEuMachines = (event) => { .build() ) .shapeInfo(controller => MultiblockShapeInfo.builder() - .aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") .aisle("CBBBBBC", "Q O Q", "Q O Q", "Q Q", "Q Q", " QSSSQ ", " 123 ") .aisle("iBBBBBf", "QO OQ", "QO Q", "QO Q", "Q Q", " SNNNS ", " y 4 ") - .aisle("CBBBBBC", "F E F", "F F", "F F", "F F", "PSNNNSP", " z 5 ") + .aisle("CBBBBBC", "F E F", "F F", "F F", "F F", "FSNNNSF", " z 5 ") .aisle("tBBBBNl", "Q O Q", "Q O Q", "Q Q", "Q Q", " SNNNS ", " 0 6 ") .aisle("CNBBNNC", "Q Q", "Q Q", "Q Q", "Q Q", " QSSSQ ", " 987 ") - .aisle(" mCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " P ", " ") + .aisle(" mCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") .where('X', controller, Direction.SOUTH) .where('C', GTBlocks.CASING_TITANIUM_STABLE.get()) .where('B', Block.getBlock('minecraft:end_stone')) @@ -176,8 +175,7 @@ const registerGTCEuMachines = (event) => { .where('F', Block.getBlock('gtceu:titanium_frame')) .where('Q', Block.getBlock('ae2:quartz_glass')) .where(' ', Block.getBlock('minecraft:air')) - .where('S', Block.getBlock('minecraft:end_stone_bricks')) - .where('P', Block.getBlock('gtceu:ender_pearl_block')) + .where('S', Block.getBlock('tfg:artificial_end_portal_frame')) .where('E', Block.getBlock('minecraft:dragon_egg')) .where('1', Block.getBlock('tfc:ore/small_native_copper')) From 55492435cef9a4802379c7ca2fec63d5c21e49e3 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:16:05 +0000 Subject: [PATCH 05/26] terrarium recipes Signed-off-by: Pyritie --- kubejs/server_scripts/tfg/terrariums.js | 233 ++++++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 kubejs/server_scripts/tfg/terrariums.js diff --git a/kubejs/server_scripts/tfg/terrariums.js b/kubejs/server_scripts/tfg/terrariums.js new file mode 100644 index 000000000..e93c725b0 --- /dev/null +++ b/kubejs/server_scripts/tfg/terrariums.js @@ -0,0 +1,233 @@ +ServerEvents.recipes(event => { + + event.remove({ id: 'gtceu:gas_collector/nether_air' }) + event.remove({ id: 'minecraft:netherite_upgrade_smithing_template' }) + event.remove({ id: 'gtceu:gas_collector/ender_air' }) + event.remove({ id: 'gtceu:macerator/macerate_end_stone' }) + event.remove({ id: 'minecraft:ender_chest' }) + event.remove({ id: 'gtceu:assembler/ender_chest' }) + event.remove({ id: 'minecraft:end_crystal' }) + event.remove({ id: 'gtceu:assembler/end_crystal' }) + + // nether slurry + + event.recipes.gtceu.mixer('tfg:nether_slurry') + .itemInputs('gtceu:basalt_dust', 'minecraft:blaze_powder', 'minecraft:gold_nugget') + .inputFluids(Fluid.of('minecraft:lava', 1000)) + .outputFluids(Fluid.of('tfg:nether_slurry', 1000)) + .duration(200) + .EUt(512) + + event.recipes.gtceu.mixer('tfg:enriched_nether_slurry') + .itemInputs('minecraft:quartz', 'minecraft:redstone') + .inputFluids(Fluid.of('tfg:nether_slurry', 2000)) + .outputFluids(Fluid.of('tfg:enriched_nether_slurry', 2000)) + .duration(200) + .EUt(512) + + // nether air + + event.recipes.gtceu.nether_dome('tfg:slurry_to_air') + .inputFluids(Fluid.of('tfg:nether_slurry', 100)) + .outputFluids(Fluid.of('gtceu:nether_air', 32000)) + .duration(200) + .EUt(256) + + event.recipes.gtceu.nether_dome('tfg:enriched_slurry_to_air') + .inputFluids(Fluid.of('tfg:enriched_nether_slurry', 100)) + .outputFluids(Fluid.of('gtceu:nether_air', 128000)) + .duration(200) + .EUt(256) + + event.recipes.gtceu.nether_dome('tfg:quartz') + .itemInputs('gtceu:quartzite_gem') + .inputFluids(Fluid.of('tfg:nether_slurry', 25)) + .itemOutputs('minecraft:quartz') + .duration(200) + .EUt(512) + + // netherarium + + /*event.shaped('gtceu:nether_dome', [ + 'GCB', + 'DEH', + 'FAF' + ], { + A: 'minecraft:flint_and_steel', + B: 'minecraft:gold_nugget', + C: 'minecraft:blaze_rod', + D: 'minecraft:quartz', + E: 'gtceu:hv_gas_collector', + F: 'gtceu:dense_obsidian_plate', + G: 'minecraft:rotten_flesh', + H: 'minecraft:bone' + }).id('tfg:shaped/nether_dome')*/ + + event.shaped('gtceu:nether_dome', [ + 'ADA', + 'CEC', + 'FBF' + ], { + A: 'minecraft:quartz', + B: 'minecraft:gold_block', + C: 'minecraft:blaze_rod', + D: 'gtceu:hv_emitter', + E: 'gtceu:hv_gas_collector', + F: 'gtceu:dense_obsidian_plate' + }).id('tfg:shaped/nether_dome2') + + // netherrack + + event.recipes.gtceu.chemical_bath('tfg:netherrack') + .itemInputs('#forge:stone') + .inputFluids(Fluid.of('gtceu:blaze', 144)) + .itemOutputs('minecraft:netherrack') + .duration(200) + .EUt(512) + + event.recipes.gtceu.macerator('tfg:obsidian') + .itemInputs('minecraft:obsidian') + .itemOutputs('gtceu:obsidian_dust') + .duration(100) + .EUt(512) + + // nether bricks + + event.shaped('4x minecraft:nether_bricks', [ + 'ABA', + 'BAB', + 'ABA' + ], { + A: 'minecraft:nether_brick', + B: 'tfc:mortar' + }).id('tfg:shaped/nether_bricks') + + event.recipes.gtceu.assembler('tfg:nether_bricks') + .itemInputs('5x minecraft:nether_brick') + .itemOutputs('4x minecraft:nether_bricks') + .inputFluids(Fluid.of('gtceu:concrete', 72)) + .duration(50) + .EUt(2) + + // ender slurry + + event.recipes.gtceu.mixer('tfg:ender_slurry') + .itemInputs('gtceu:obsidian_dust', 'minecraft:end_stone') + .inputFluids(Fluid.of('gtceu:helium', 200), Fluid.of('gtceu:radon', 50)) + .outputFluids(Fluid.of('tfg:ender_slurry', 250)) + .duration(200) + .EUt(2048) + + event.recipes.gtceu.mixer('tfg:enriched_ender_slurry') + .itemInputs('minecraft:chorus_fruit', 'ae2:ender_dust') + .inputFluids(Fluid.of('tfg:ender_slurry', 500)) + .outputFluids(Fluid.of('tfg:enriched_ender_slurry', 500)) + .duration(200) + .EUt(2048) + + // ender air + + event.recipes.gtceu.end_dome('tfg:slurry_to_air') + .inputFluids(Fluid.of('tfg:ender_slurry', 25)) + .outputFluids(Fluid.of('gtceu:ender_air', 32000)) + .duration(200) + .EUt(1024) + + event.recipes.gtceu.end_dome('tfg:enriched_slurry_to_air') + .inputFluids(Fluid.of('tfg:enriched_ender_slurry', 25)) + .outputFluids(Fluid.of('gtceu:ender_air', 128000)) + .duration(200) + .EUt(1024) + + event.recipes.gtceu.end_dome('tfg:pearls') + .itemInputs('gtceu:quantum_eye') + .inputFluids(Fluid.of('tfg:ender_slurry', 10)) + .itemOutputs('2x minecraft:ender_pearl') + .duration(200) + .EUt(2048) + + // enderarium + + /*event.recipes.gtceu.assembler('tfg:end_dome') + .itemInputs('12x minecraft:ender_eye', 'minecraft:chorus_fruit', 'minecraft:end_crystal', '#minecraft:beds', 'gtceu:ev_gas_collector', 'tfc:metal/bars/wrought_iron', 'minecraft:bow', 'minecraft:end_stone', 'minecraft:obsidian') + .itemOutputs('gtceu:end_dome') + .duration(600) + .EUt(2048)*/ + + event.shaped('gtceu:end_dome', [ + 'DAD', + 'CEC', + 'FBF' + ], { + A: 'gtceu:ev_emitter', + B: 'minecraft:end_stone', + C: 'tfc:metal/bars/wrought_iron', + D: 'minecraft:end_crystal', + E: 'gtceu:ev_gas_collector', + F: 'gtceu:dense_obsidian_plate' + }).id('tfg:shaped/end_dome') + + // parts for the ender dome + + event.shaped('minecraft:end_crystal', [ + 'AAA', + 'ABA', + 'ACA' + ], { + A: 'gtceu:tempered_glass', + B: 'gtceu:quantum_eye', + C: '#forge:exquisite_gems' + }).id('tfg:shaped/end_crystal') + + // chorus fruit + + event.recipes.gtceu.large_chemical_reactor('tfg:chorus_fruit_uranium') + .itemInputs('#tfc:foods/fruits', 'gtceu:uranium_235_dust') + .itemOutputs('minecraft:chorus_fruit', 'gtceu:uranium_dust') + .duration(500) + .EUt(480) + + event.recipes.gtceu.large_chemical_reactor('tfg:chorus_fruit_plutonium') + .itemInputs('#tfc:foods/fruits', 'gtceu:plutonium_241_dust') + .itemOutputs('minecraft:chorus_fruit', 'gtceu:plutonium_dust') + .duration(200) + .EUt(480) + + event.recipes.gtceu.centrifuge('tfg:kovarex') + .itemInputs('40x gtceu:uranium_235_dust', '5x gtceu:uranium_dust') + .itemOutputs('41x gtceu:uranium_235_dust', '2x gtceu:uranium_dust') + .duration(1000) + .EUt(512) + + // end stone + + + event.recipes.gtceu.chemical_bath('tfg:end_stone') + .itemInputs('#forge:stone') + .inputFluids(Fluid.of('gtceu:argon', 100)) + .itemOutputs('minecraft:end_stone') + .duration(100) + .EUt(2048) + + // dragon egg + + event.recipes.gtceu.chemical_bath('tfg:dragon_egg') + .itemInputs('#forge:eggs') + .inputFluids(Fluid.of('gtceu:thorium', 1296)) + .itemOutputs('minecraft:dragon_egg') + .duration(2000) + .EUt(2048) + + // end portal frame + + event.shaped('tfg:artificial_end_portal_frame', [ + 'A', + 'B', + 'C' + ], { + A: 'minecraft:ender_eye', + B: 'minecraft:cyan_carpet', + C: 'minecraft:end_stone' + }).id('tfg:shaped/artificial_end_portal_frame') +}) + From 11c3737c5ece342754f98420021a45da3176d8de Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:19:20 +0000 Subject: [PATCH 06/26] update main_server_script.js Signed-off-by: Pyritie --- kubejs/startup_scripts/main_server_script.js | 143 +++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 kubejs/startup_scripts/main_server_script.js diff --git a/kubejs/startup_scripts/main_server_script.js b/kubejs/startup_scripts/main_server_script.js new file mode 100644 index 000000000..5adb7f640 --- /dev/null +++ b/kubejs/startup_scripts/main_server_script.js @@ -0,0 +1,143 @@ +// priority: 1 + +/** + * Событие регистрации предмет-тэгов. + */ +ServerEvents.tags('item', event => { + registerAE2ItemTags(event) + registerAsticorCartsItemTags(event) + registerChiselAndBitsItemTags(event) + registerComputerCraftItemTags(event) + registerCreateItemTags(event) + registerCreateAdditionsItemTags(event) + registerExtendedAE2ItemTags(event) + registerFirmaCivItemTags(event) + registerFirmaLifeItemTags(event) + registerFramedBlocksItemTags(event) + registerFTBQuestsItemTags(event) + registerGTCEUItemTags(event) + registerMegaCellsItemTags(event) + registerMinecraftItemTags(event) + registerMoreRedItemTags(event) + registerHotOrNotItemTags(event) + registerRailWaysItemTags(event) + registerSophisticatedBackpacksItemTags(event) + registerTFCItemTags(event) +}) + +/** + * Событие регистрации блок-тэгов. + */ +ServerEvents.tags('block', event => { + registerAE2BlockTags(event) + registerAsticorCartsBlockTags(event) + registerChiselAndBitsBlockTags(event) + registerComputerCraftBlockTags(event) + registerCreateBlockTags(event) + registerCreateAdditionsBlockTags(event) + registerExtendedAE2BlockTags(event) + registerFirmaCivBlockTags(event) + registerFirmaLifeBlockTags(event) + registerFramedBlocksBlockTags(event) + registerFTBQuestsBlockTags(event) + registerGTCEUBlockTags(event) + registerMegaCellsBlockTags(event) + registerMinecraftBlockTags(event) + registerMoreRedBlockTags(event) + registerHotOrNotBlockTags(event) + registerRailWaysBlockTags(event) + registerSophisticatedBackpacksBlockTags(event) + registerTFCBlockTags(event) +}) + +/** + * Событие регистрации жидкость-тэгов. + */ +ServerEvents.tags('fluid', event => { + registerCreateFluidTags(event) + registerCreateAdditionsFluidTags(event) + registerFirmaLifeBlockTags(event) + registerTFCFluidTags(event) +}) + +/** + * Событие регистрации тегов структур. + */ +ServerEvents.tags('worldgen/placed_feature', event => { + registerFirmaLifePlacedFeatures(event) + registerTFCPlacedFeatures(event) +}) + +/** + * Событие регистрации датапаков (Здесь можно регистрировать теги, данные, рецепты, общий метод короче). + * Срабатывает до инициализации рецептов, но после тегов. + */ +ServerEvents.highPriorityData(event => { + registerComputerCraftData(event) +}) + +/** + * Событие регистрации датапаков для TFC (Здесь можно регистрировать теги, данные, рецепты, общий метод короче). + * Срабатывает до инициализации рецептов, но после тегов. + */ +TFCEvents.data(event => { + registerTFCDataForGTCEU(event) + registerTFCDataForTFC(event) + registerTFCDataForTreeTap(event) + registerTFCDataForWaterFlasks(event) +}) + +/** + * Событие регистрации лут-тейблов. + * Срабатывает до инициализации рецептов, но после датапаков и тегов. + */ +LootJS.modifiers((event) => { + registerGTCEULoots(event) +}); + +/** + * Событие регистрации рудных жил. + * Не представляю когда срабатывает, но явно после тегов и датапаков. + */ +GTCEuServerEvents.oreVeins(event => { + // event.removeAll() +}) + +/** + * Событие регистрации рецептов. + * Срабатывает после инициализации датапаков и тегов. + */ +ServerEvents.recipes(event => { + registerAE2Recipes(event) + registerAsticorCartsRecipes(event) + registerAE2InsertExportCardRecipes(event) + registerAE2NetworkAnalyzerRecipes(event) + registerAE2WTLibRecipes(event) + registerChiselAndBitsRecipes(event) + registerComputerCraftRecipes(event) + registerCreateRecipes(event) + registerCreateAdditionsRecipes(event) + registerCreateConnectedRecipes(event) + registerExtendedAE2Recipes(event) + registerExposureRecipes(event) + registerEtchedRecipes(event) + registerFirmaCivRecipes(event) + registerFirmaLifeRecipes(event) + registerFramedBlocksRecipes(event) + registerFTBQuestsRecipes(event) + registerGTCEURecipes(event) + registerHandGliderRecipes(event) + registerHotOrNotRecipes(event) + registerMegaCellsRecipes(event) + registerMERequesterRecipes(event) + registerMinecraftRecipes(event) + registerMoreRedRecipes(event) + registerRailWaysRecipes(event) + registerSophisticatedBackpacksRecipes(event) + registerTfceaRecipes(event) + registerTFCRecipes(event) + registerTFCGroomingStationRecipes(event) + registerToolBeltRecipes(event) + registerTreeTapRecipes(event) + registerWaterFlasksRecipes(event) +}) \ No newline at end of file From 4602044a59bb081d90e215cede7dfcedda54c448 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:20:11 +0000 Subject: [PATCH 07/26] add new blocks + fluids Signed-off-by: Pyritie --- kubejs/startup_scripts/tfg/blocks.js | 11 +++++++++++ kubejs/startup_scripts/tfg/fluids.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 kubejs/startup_scripts/tfg/blocks.js create mode 100644 kubejs/startup_scripts/tfg/fluids.js diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js new file mode 100644 index 000000000..e9fe4451b --- /dev/null +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -0,0 +1,11 @@ +const registerTFGBlocks = (event) => { + + event.create('tfg:artificial_end_portal_frame') + .stoneSoundType() + .tagBlock('minecraft:mineable/pickaxe') + .requiresTool(true) + .fullBlock(true) + .item(item => { + item.modelJson({ parent: 'minecraft:block/end_portal_frame' }) + }) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/fluids.js b/kubejs/startup_scripts/tfg/fluids.js new file mode 100644 index 000000000..0e475ab81 --- /dev/null +++ b/kubejs/startup_scripts/tfg/fluids.js @@ -0,0 +1,28 @@ +const registerTFGFluids = (event) => { + + event.create('tfg:nether_slurry') + .thickTexture(0x6b281b) + .bucketColor(0x6b281b) + .temperature(1000) + .luminosity(7) + .noBlock() + + event.create('tfg:enriched_nether_slurry') + .thickTexture(0x99594d) + .bucketColor(0x99594d) + .temperature(1000) + .luminosity(7) + .noBlock() + + event.create('tfg:ender_slurry') + .thickTexture(0x1b5c51) + .bucketColor(0x1b5c51) + .luminosity(2) + .noBlock() + + event.create('tfg:enriched_ender_slurry') + .thickTexture(0x3a9178) + .bucketColor(0x3a9178) + .luminosity(2) + .noBlock() +} \ No newline at end of file From 538f6c89522ac580127bef26f74ad569f5bfce12 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:20:57 +0000 Subject: [PATCH 08/26] add model for artificial end portal frame Signed-off-by: Pyritie --- .../block/artificial_end_portal_frame.json | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 kubejs/assets/tfg/models/block/artificial_end_portal_frame.json diff --git a/kubejs/assets/tfg/models/block/artificial_end_portal_frame.json b/kubejs/assets/tfg/models/block/artificial_end_portal_frame.json new file mode 100644 index 000000000..1b8e182a0 --- /dev/null +++ b/kubejs/assets/tfg/models/block/artificial_end_portal_frame.json @@ -0,0 +1,84 @@ +{ + "textures": { + "particle": "block/end_portal_frame_side", + "bottom": "block/end_stone", + "top": "block/end_portal_frame_top", + "side": "block/end_portal_frame_side", + "eye": "block/end_portal_frame_eye" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#top" + }, + "north": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "north" + }, + "south": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "west" + }, + "east": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "east" + } + } + } + ] +} \ No newline at end of file From a1d402eba69f952cef788b9abaa1011da1ccdba0 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:21:53 +0000 Subject: [PATCH 09/26] update minecraft/constants.js Signed-off-by: Pyritie --- kubejs/startup_scripts/minecraft/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index 9275ca1d7..2b1c7cf7c 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -666,7 +666,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:honey_bottle', 'minecraft:honeycomb_block', 'minecraft:honey_block', - 'minecraft:chorus_fruit', + //'minecraft:chorus_fruit', 'minecraft:popped_chorus_fruit', 'minecraft:purpur_pillar', 'minecraft:purpur_block', From 04407db64941f860f46296b7827f762ef420a41b Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:23:02 +0000 Subject: [PATCH 10/26] update gregtech/recipes.js Signed-off-by: Pyritie --- kubejs/server_scripts/gregtech/recipes.js | 136 +++++++++++++--------- 1 file changed, 80 insertions(+), 56 deletions(-) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 650a3c2dc..a53dda3d4 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1050,12 +1050,11 @@ const registerGTCEURecipes = (event) => { event.remove({ id: 'gtceu:extractor/extract_raw_rubber_dust' }) // Пыль звезды незера - // TODO: удалить после имплементации ада event.recipes.gtceu.chemical_reactor('tfg:gtceu/nether_star_dust') .itemInputs('2x #forge:dusts/iridium', '#forge:dusts/diamond') .circuit(10) .itemOutputs('gtceu:nether_star_dust') - .inputFluids(Fluid.of('gtceu:sulfur_dioxide', 6000), Fluid.of('gtceu:carbon_monoxide', 8000)) + .inputFluids(Fluid.of('gtceu:nether_air', 1000)) .duration(700) .EUt(2720) @@ -1277,16 +1276,82 @@ const registerGTCEURecipes = (event) => { .EUt(24) //#endregion - - // Add circuit to assembler recipe for redstone lamp. - // Avoids conflict with AE2 smart cables. - event.remove({ id: 'gtceu:assembler/redstone_lamp' }) - event.recipes.gtceu.assembler('redstone_lamp') - .itemInputs('4x #forge:dusts/redstone', '4x #forge:dusts/glowstone') - .itemOutputs('1x minecraft:redstone_lamp') - .circuit(1) - .duration(100) - .EUt(1) + + //#region remove LV casing exploit + + /*event.remove({ id: 'gtceu:assembler/casing_lv' }) + event.recipes.gtceu.assembler('tfg:assembler/casing_lv') + .itemInputs('4x gtceu:blue_steel_plate', '4x gtceu:red_steel_plate') + .itemOutputs('gtceu:lv_machine_casing') + .circuit(8) + .duration(50) + .EUt(16)*/ + + //#endregion + + //#region make colored steel a bit easier to compensate + + event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot') + .itemInputs('gtceu:black_steel_dust') + .itemOutputs('gtceu:black_steel_ingot') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(500) + .EUt(24) + + event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot') + .itemInputs('gtceu:red_steel_dust') + .itemOutputs('gtceu:red_steel_ingot') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot') + .itemInputs('gtceu:blue_steel_dust') + .itemOutputs('gtceu:blue_steel_ingot') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + //#endregion + + //#region add regular furnace recipes for other tfc alloys + + event.remove({id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) + event.remove({id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) + event.remove({id: 'gtceu:vacuum_freezer/black_bronze' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) + + event.recipes.gtceu.electric_furnace('tfg:bismuth_bronze_dust_to_ingot') + .itemInputs('gtceu:bismuth_bronze_dust') + .itemOutputs('gtceu:bismuth_bronze_ingot') + .duration(200) + .EUt(16) + + event.recipes.gtceu.electric_furnace('tfg:black_bronze_dust_to_ingot') + .itemInputs('gtceu:black_bronze_dust') + .itemOutputs('gtceu:black_bronze_ingot') + .duration(200) + .EUt(16) + + event.recipes.gtceu.electric_furnace('tfg:sterling_silver_dust_to_ingot') + .itemInputs('gtceu:sterling_silver_dust') + .itemOutputs('gtceu:sterling_silver_ingot') + .duration(300) + .EUt(20) + + event.recipes.gtceu.electric_furnace('tfg:rose_gold_dust_to_ingot') + .itemInputs('gtceu:rose_gold_dust') + .itemOutputs('gtceu:rose_gold_ingot') + .duration(300) + .EUt(20) + + //#endregion //#region Рецепты, которые итерируются по всем материалам @@ -1465,51 +1530,10 @@ const registerGTCEURecipes = (event) => { } }); + //#endregion - - // Fix LV recycling producing red/blue steel. - // Replace red steel outputs with 8x steel, delete blue steel outputs. - event.replaceOutput( - /gtceu:arc_furnace\/arc_lv_.*/, - '#forge:ingots/red_steel', - '8x #forge:ingots/steel') - - event.replaceOutput( - /gtceu:arc_furnace\/arc_lv_.*/, - '#forge:ingots/blue_steel', - '') - - event.replaceOutput( - /gtceu:macerator\/macerate_lv_.*/, - '#forge:dusts/red_steel', - '8x #forge:dusts/steel') - - event.replaceOutput( - /gtceu:macerator\/macerate_lv_.*/, - '#forge:dusts/blue_steel', - '') - - // Clear NBT on tanks with shapeless crafts. - const TANK_NAMES = [ - "lv_super", - "mv_super", - "hv_super", - "ev_super", - "iv_quantum", - "luv_quantum", - "zpm_quantum", - "uv_quantum", - "uhv_quantum", - ] - - TANK_NAMES.forEach(prefix => { - // Craft super tanks to remove their NBT data. - event.shapeless(`gtceu:${prefix}_tank`, [`gtceu:${prefix}_tank`]) - // Craft super chests to remove their NBT data. - event.shapeless(`gtceu:${prefix}_chest`, [`gtceu:${prefix}_chest`]) - }) - - //#region fix more duping + + //#region fix more duping // red alloy, because crucible always makes 4+1=5 From 10d69af86f8043f5ac8446bf5baf131200230d81 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Fri, 10 Jan 2025 23:23:26 +0000 Subject: [PATCH 11/26] update tooltips.js Signed-off-by: Pyritie --- kubejs/client_scripts/tooltips.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/kubejs/client_scripts/tooltips.js b/kubejs/client_scripts/tooltips.js index 323f0ead5..0ae8ec39b 100644 --- a/kubejs/client_scripts/tooltips.js +++ b/kubejs/client_scripts/tooltips.js @@ -1,4 +1,7 @@ ItemEvents.tooltip(event => { + event.addAdvanced(['tfc:red_kaolin_clay','tfc:pink_kaolin_clay','tfc:white_kaolin_clay','gtceu:brass_block'], (item, advanced, text) => { + text.add(1, [text.of('Used in glassblowing as a replacement for Brass Plated Blocks')]) + }) event.addAdvanced(['gtceu:lv_macerator','gtceu:mv_macerator', 'gtceu:hp_steam_macerator'], (item, advanced, text) => { text.add(1, [text.of('Only outputs the first slot shown in EMI/JEI until HV.')]) }) @@ -23,4 +26,12 @@ ItemEvents.tooltip(event => { event.addAdvanced(['firmalife:beehive'], (item, advanced, text) => { text.add(1, [text.of('Needs to be filled with empty frames and surrounded by flowers to attract bees.')]) }) + event.addAdvanced(['gtceu:nether_dome'], (item, advanced, text) => { + text.add(1, text.of('Artificial enviroment to simulate the Nether.')), + text.add(2, text.of(`The interior is customizable! Check the multiblock preview in JEI.`)) + }) + event.addAdvanced(['gtceu:end_dome'], (item, advanced, text) => { + text.add(1, text.of('Artificial enviroment to simulate the End.')), + text.add(2, text.of(`The interior is customizable! Check the multiblock preview in JEI.`)) + }) }) From 547e1dae9ad21c923f0e2a168595f653e3569da8 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 11 Jan 2025 18:01:35 +0000 Subject: [PATCH 12/26] adjusted glowstone recipe Signed-off-by: Pyritie --- kubejs/server_scripts/minecraft/recipes.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 921c3b673..0aa85775f 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -3262,8 +3262,8 @@ const registerMinecraftRecipes = (event) => { //#region Glowstone event.recipes.gtceu.mixer('gtceu:lv_glowstone') - .inputFluids(Fluid.of('gtceu:creosote', 1000), Fluid.of('gtceu:distilled_water', 1000)) - .itemInputs('gtceu:stone_dust', 'minecraft:redstone', 'gtceu:sulfur_dust', 'gtceu:sodium_dust') + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .itemInputs('gtceu:gold_dust', 'minecraft:redstone', 'gtceu:sulfur_dust', 'gtceu:coal_dust') .itemOutputs('minecraft:glowstone_dust') .circuit(32) .duration(1200) From c0efaf5340a45e3d302d0914745f99cc03b8f6f0 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 11 Jan 2025 18:05:47 +0000 Subject: [PATCH 13/26] missed nether_brick Signed-off-by: Pyritie --- kubejs/startup_scripts/minecraft/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index 2b1c7cf7c..ca7218bb3 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -815,7 +815,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:wither_skeleton_skull', 'minecraft:weeping_vines', 'minecraft:crimson_roots', - 'minecraft:nether_brick', + //'minecraft:nether_brick', 'minecraft:nether_wart', 'minecraft:twisting_vines', 'minecraft:warped_fungus', From 3d7c02ccf351767f5f00044749d5f0f060c648ec Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 11 Jan 2025 18:22:19 +0000 Subject: [PATCH 14/26] Update main_startup_script.js Signed-off-by: Pyritie --- kubejs/startup_scripts/main_startup_script.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index b36fa8b48..3cf9d793a 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -12,8 +12,7 @@ StartupEvents.registry('item', event => { */ StartupEvents.registry('block', event => { registerGTCEuBlocks(event) - - + registerTFGBlocks(event) }) /** @@ -31,7 +30,9 @@ ItemEvents.modification(event => {}) /** * Событие регистрации жидкостей. */ -StartupEvents.registry('fluid', event => {}) +StartupEvents.registry('fluid', event => { + registerTFGFluids(event) +}) /** * Событие регистрации типов рецептов. @@ -52,4 +53,4 @@ GTCEuStartupEvents.registry('gtceu:machine', event => { */ // TFGStartupEvents.materialInfo(event => { // registerGTCEuMaterialInfo(event) -// }) \ No newline at end of file +// }) From 98b9452ade71989f84b1119bebbf447dd9642645 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 11 Jan 2025 19:40:29 +0000 Subject: [PATCH 15/26] Update tags.js Signed-off-by: Pyritie --- kubejs/server_scripts/gregtech/tags.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kubejs/server_scripts/gregtech/tags.js b/kubejs/server_scripts/gregtech/tags.js index 23f04da80..6917a4e25 100644 --- a/kubejs/server_scripts/gregtech/tags.js +++ b/kubejs/server_scripts/gregtech/tags.js @@ -39,6 +39,8 @@ const registerGTCEUItemTags = (event) => { event.add('tfg:stone_dusts', 'gtceu:stone_dust') + event.remove('minecraft:planks', 'gtceu:treated_wood_planks') + //#endregion } From 289bcae162ed244c5315b7c363707f83ff820770 Mon Sep 17 00:00:00 2001 From: Sergey Semin Date: Sat, 11 Jan 2025 23:35:29 +0300 Subject: [PATCH 16/26] electric leather --- kubejs/server_scripts/tfc/recipes.js | 115 +++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 2cb401eb8..1b618ecbf 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -3074,6 +3074,121 @@ const registerTFCRecipes = (event) => { // А где? //#endregion + // Бумага + event.recipes.gtceu.cutter('tfg:unrefined_paper') + .itemInputs('tfc:unrefined_paper') + .itemOutputs('minecraft:paper') + .duration(100) + .EUt(16) + + // Limewater + event.recipes.gtceu.mixer('tfg:limewater_from_lime') + .itemInputs('tfc:powder/lime') + .inputFluids(Fluid.of('water', 500)) + .outputFluids(Fluid.of('tfc:limewater', 500)) + .duration(20) + .EUt(16) + + event.recipes.gtceu.mixer('tfg:limewater_from_flux') + .itemInputs('tfc:powder/flux') + .inputFluids(Fluid.of('water', 500)) + .outputFluids(Fluid.of('tfc:limewater', 500)) + .duration(20) + .EUt(16) + + // Tannin + event.recipes.gtceu.chemical_bath('tfg:tannin') + .itemInputs('#tfc:makes_tannin') + .inputFluids(Fluid.of('water', 1000)) + .outputFluids(Fluid.of('tfc:tannin', 1000)) + .duration(2400) + .EUt(16) + + // Soaked hides + event.recipes.gtceu.chemical_bath('tfg:small_soaked_hide') + .itemInputs('tfc:small_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 300)) + .itemOutputs('tfc:small_soaked_hide') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_soaked_hide') + .itemInputs('tfc:medium_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 400)) + .itemOutputs('tfc:medium_soaked_hide') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_soaked_hide') + .itemInputs('tfc:large_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 500)) + .itemOutputs('tfc:large_soaked_hide') + .duration(3200) + .EUt(16) + + // Scraped Hides + event.recipes.gtceu.cutter('tfg:small_scraped_hide') + .itemInputs('tfc:small_soaked_hide') + .itemOutputs('tfc:small_scraped_hide') + .duration(100) + .EUt(16) + + event.recipes.gtceu.cutter('tfg:medium_scraped_hide') + .itemInputs('tfc:medium_soaked_hide') + .itemOutputs('tfc:medium_scraped_hide') + .duration(100) + .EUt(16) + + event.recipes.gtceu.cutter('tfg:large_scraped_hide') + .itemInputs('tfc:large_soaked_hide') + .itemOutputs('tfc:large_scraped_hide') + .duration(100) + .EUt(16) + + // Prepared hides + event.recipes.gtceu.chemical_bath('tfg:small_prepared_hide') + .itemInputs('tfc:small_soaked_hide') + .inputFluids(Fluid.of('water', 300)) + .itemOutputs('tfc:small_prepared_hide') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_prepared_hide') + .itemInputs('tfc:medium_soaked_hide') + .inputFluids(Fluid.of('water', 400)) + .itemOutputs('tfc:medium_prepared_hide') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_prepared_hide') + .itemInputs('tfc:large_soaked_hide') + .inputFluids(Fluid.of('water', 500)) + .itemOutputs('tfc:large_prepared_hide') + .duration(3200) + .EUt(16) + + // Leather + event.recipes.gtceu.chemical_bath('tfg:small_leather') + .itemInputs('tfc:small_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 300)) + .itemOutputs('minecraft:leather') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_leather') + .itemInputs('tfc:medium_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 400)) + .itemOutputs('2x minecraft:leather') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_leather') + .itemInputs('tfc:large_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 500)) + .itemOutputs('3x minecraft:leather') + .duration(3200) + .EUt(16) + // Другое event.remove({ id: `tfc:crafting/trip_hammer` }) event.remove({ id: `tfc:anvil/steel_pump` }) From fc2c349be8fbd13e5922e5a63cdf44d63692a49d Mon Sep 17 00:00:00 2001 From: Sergey Semin Date: Sun, 12 Jan 2025 01:29:47 +0300 Subject: [PATCH 17/26] electric cheese, tomato sauce and cream --- kubejs/server_scripts/tfc/recipes.js | 134 ++++++++++++++++++++++++ kubejs/server_scripts/tfc/tags.js | 5 + kubejs/startup_scripts/tfc/constants.js | 7 ++ 3 files changed, 146 insertions(+) diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 2cb401eb8..ea6a886bd 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -3044,6 +3044,140 @@ const registerTFCRecipes = (event) => { //#endregion + //#region СЫЫЫР 0_0 + + // Rennet + event.recipes.gtceu.fermenter('tfg:fermenter/vegetable_rennet') + .itemInputs('#tfg:ferments_to_rennet') + .itemOutputs('firmalife:rennet') + .duration(400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/biomass_rennet') + .inputFluids(Fluid.of('gtceu:fermented_biomass', 100)) + .itemOutputs('firmalife:rennet') + .duration(2400) + .EUt(16) + + // Curdled milk + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk') + .inputFluids(Fluid.of('minecraft:milk', 1000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('tfc:curdled_milk')) + .duration(2400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk') + .inputFluids(Fluid.of('firmalife:yak_milk', 1000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('firmalife:curdled_yak_milk')) + .duration(2400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk') + .inputFluids(Fluid.of('firmalife:goat_milk', 1000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('firmalife:curdled_goat_milk')) + .duration(2400) + .EUt(16) + + //Curds + event.recipes.gtceu.fermenter('tfg:fermenter/milk_curd') + .inputFluids(Fluid.of('tfc:curdled_milk', 1000)) + .itemOutputs('firmalife:food/milk_curd') + .duration(1200) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/yak_curd') + .inputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000)) + .itemOutputs('firmalife:food/yak_curd') + .duration(1200) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/goat_curd') + .inputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000)) + .itemOutputs('firmalife:food/goat_curd') + .duration(1200) + .EUt(16) + + // Cheese wheels + event.recipes.gtceu.fermenter('tfg:fermenter/gouda_wheel') + .inputFluids(Fluid.of('tfc:salt_water', 750)) + .itemInputs('3x firmalife:food/milk_curd') + .itemOutputs('firmalife:gouda_wheel') + .duration(12000) + .EUt(24) + + event.recipes.gtceu.fermenter('tfg:fermenter/shosha_wheel') + .inputFluids(Fluid.of('tfc:salt_water', 750)) + .itemInputs('3x firmalife:food/yak_curd') + .itemOutputs('firmalife:shosha_wheel') + .duration(12000) + .EUt(24) + + event.recipes.gtceu.fermenter('tfg:fermenter/feta_wheel') + .inputFluids(Fluid.of('tfc:salt_water', 750)) + .itemInputs('3x firmalife:food/goat_curd') + .itemOutputs('firmalife:feta_wheel') + .duration(12000) + .EUt(24) + + // Cutting + event.recipes.gtceu.cutter('tfg:cutter/gouda') + .itemInputs('firmalife:gouda_wheel') + .itemOutputs('4x firmalife:food/gouda') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/shosha') + .itemInputs('firmalife:shosha_wheel') + .itemOutputs('4x firmalife:food/shosha') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/feta') + .itemInputs('firmalife:feta_wheel') + .itemOutputs('4x firmalife:food/feta') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/cheddar') + .itemInputs('firmalife:cheddar_wheel') + .itemOutputs('4x firmalife:food/cheddar') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/chevre') + .itemInputs('firmalife:chevre_wheel') + .itemOutputs('4x firmalife:food/chevre') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/rajya_metok') + .itemInputs('firmalife:rajya_metok_wheel') + .itemOutputs('4x firmalife:food/rajya_metok') + .duration(40) + .EUt(28) + + // Misc + global.TFC_MILKS.forEach(milk => { + event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milk.id.replace(':', '_')}`) + .inputFluids(Fluid.of(milk.id, 1000)) + .outputFluids(Fluid.of('firmalife:cream')) + .duration(1200) + .EUt(24) + }) + + event.recipes.gtceu.mixer('tfg:mixer/tomato_sauce') + .itemInputs('firmalife:food/tomato_sauce_mix') + .inputFluids(Fluid.of('minecraft:water', 200)) + .itemOutputs('firmalife:food/tomato_sauce') + .duration(200) + .EUt(24) + + + //endregion + //#region Оливки event.recipes.gtceu.macerator(`tfg:tfc/olive_paste`) diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index a746d2c62..9b9f50d93 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -29,6 +29,11 @@ const registerTFCItemTags = (event) => { event.add('tfc:usable_on_tool_rack', '#forge:tools/chainsaws') event.add('tfc:usable_on_tool_rack', '#forge:tools/buzzsaws') event.add('tfc:usable_on_tool_rack', '#forge:tools/drills') + + // Ингредиенты для закваски + event.add('tfg:ferments_to_rennet', 'tfc:food/soybean') + event.add('tfg:ferments_to_rennet', 'firmalife:food/fig') + event.add('tfg:ferments_to_rennet', 'tfc:plant/ivy') // Для складывания event.add('tfc:pileable_ingots', '#forge:ingots') diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 973c20ab7..5b91aaa30 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -1060,6 +1060,13 @@ global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS = [ { input: 'tfc:plant/cranberry_bush', fluid_amount: 6000, output: '3x tfc:food/cranberry', name: 'cranberry' }, ]; +global.TFC_MILKS = [ + {id: 'minecraft:milk'}, + {id: 'firmalife:yak_milk'}, + {id: 'firmalife:goat_milk'}, + {id: 'firmalife:coconut_milk'}, +]; + global.calcAmountOfMetal = (defaultAmount, percents) => { const value = defaultAmount / (100 / percents) return (value % 2 == 0) ? value : Math.round(value) - 1 From 1db4a2c4be835bb1a8d70c751e82ad5b855dc683 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 11 Jan 2025 23:34:26 +0000 Subject: [PATCH 18/26] Update recipes.js Signed-off-by: Pyritie --- kubejs/server_scripts/create/recipes.js | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/kubejs/server_scripts/create/recipes.js b/kubejs/server_scripts/create/recipes.js index 25b7bb275..ee17629c9 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -1189,11 +1189,24 @@ const registerCreateRecipes = (event) => { //#region Механизм точности event.recipes.gtceu.assembler('tfg:create/precision_mechanism') - .itemInputs('#forge:sheets/gold','3x create:cogwheel', '3x create:large_cogwheel', '3x #forge:nuggets/iron') - .itemOutputs('create:precision_mechanism') - .duration(2000) - .EUt(20) + .itemInputs('#forge:sheets/gold','3x create:cogwheel', '3x create:large_cogwheel', '3x #forge:nuggets/iron') + .itemOutputs('create:precision_mechanism') + .duration(2000) + .EUt(20) //#endregion + // #region electron tubes for later tiers + + event.shaped('create:electron_tube', [ + ' A ', + ' B ', + ' C ' + ], { + A: 'gtceu:glass_tube', + B: 'gtceu:nand_chip', + C: 'gtceu:wrought_iron_plate' + }).id('tfg:advanced_electron_tube') + + // #endregion } From 26321b7e4b37bf2a431da018b3bb6f16d43405d5 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sat, 11 Jan 2025 23:50:40 +0000 Subject: [PATCH 19/26] Update recipes.js Signed-off-by: Pyritie --- kubejs/server_scripts/create/recipes.js | 38 +++++++++++++++---------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/kubejs/server_scripts/create/recipes.js b/kubejs/server_scripts/create/recipes.js index ee17629c9..1dc6a808d 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -809,12 +809,34 @@ const registerCreateRecipes = (event) => { 'DED' ], { A: 'gtceu:glass_tube', - B: 'gtceu:resistor', + B: '#gtceu:resistors', C: 'gtceu:resin_circuit_board', D: 'gtceu:red_alloy_single_wire', E: '#forge:plates/wrought_iron' }).id('tfg:create/shaped/electron_tube') + event.shaped('2x create:electron_tube', [ + ' A ', + 'BCB', + 'DED' + ], { + A: 'gtceu:glass_tube', + B: '#gtceu:resistors', + C: 'gtceu:plastic_circuit_board', + D: 'gtceu:red_alloy_single_wire', + E: '#forge:plates/wrought_iron' + }).id('tfg:create/shaped/electron_tube2') + + event.shaped('3x create:electron_tube', [ + ' A ', + ' B ', + ' C ' + ], { + A: 'gtceu:glass_tube', + B: 'gtceu:nand_chip', + C: '#forge:plates/wrought_iron' + }).id('tfg:create/shaped/electron_tube3') + // Тюбик с клеем event.shaped('create:super_glue', [ 'BA', @@ -1195,18 +1217,4 @@ const registerCreateRecipes = (event) => { .EUt(20) //#endregion - - // #region electron tubes for later tiers - - event.shaped('create:electron_tube', [ - ' A ', - ' B ', - ' C ' - ], { - A: 'gtceu:glass_tube', - B: 'gtceu:nand_chip', - C: 'gtceu:wrought_iron_plate' - }).id('tfg:advanced_electron_tube') - - // #endregion } From 6e477e14690d3ed2abc10da1d5ac5a2fe94f9b30 Mon Sep 17 00:00:00 2001 From: Pyritie Date: Sun, 12 Jan 2025 00:49:34 +0000 Subject: [PATCH 20/26] Update recipes.js Signed-off-by: Pyritie --- kubejs/server_scripts/gregtech/recipes.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index bf6547854..674170b2b 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1717,5 +1717,18 @@ const registerGTCEURecipes = (event) => { .itemOutputs('gtceu:quantum_processor_mainframe') .duration(800) .EUt(7680) - //#endregion + //#endregion + + // #region fix mixer recipes for colored steel + + event.replaceInput({id: 'gtceu:mixer/red_steel'}, 'gtceu:sterling_silver_dust', 'gtceu:rose_gold_dust') + event.replaceInput({id: 'gtceu:create_mixer/red_steel'}, 'gtceu:sterling_silver_dust', 'gtceu:rose_gold_dust') + event.replaceInput({id: 'gtceu:mixer/red_steel'}, 'gtceu:bismuth_bronze_dust', 'gtceu:brass_dust') + event.replaceInput({id: 'gtceu:create_mixer/red_steel'}, 'gtceu:bismuth_bronze_dust', 'gtceu:brass_dust') + event.replaceInput({id: 'gtceu:mixer/blue_steel'}, 'gtceu:rose_gold_dust', 'gtceu:sterling_silver_dust') + event.replaceInput({id: 'gtceu:create_mixer/blue_steel'}, 'gtceu:rose_gold_dust', 'gtceu:sterling_silver_dust') + event.replaceInput({id: 'gtceu:mixer/blue_steel'}, 'gtceu:brass_dust', 'gtceu:bismuth_bronze_dust') + event.replaceInput({id: 'gtceu:create_mixer/blue_steel'}, 'gtceu:brass_dust', 'gtceu:bismuth_bronze_dust') + + // #endregion } From 0212f19e50fcf2a1eb2421d579b47906be880164 Mon Sep 17 00:00:00 2001 From: Dmitry <52341158+Exzept1on@users.noreply.github.com> Date: Sun, 12 Jan 2025 11:57:06 +0700 Subject: [PATCH 21/26] Update CHANGELOG.md Signed-off-by: Dmitry <52341158+Exzept1on@users.noreply.github.com> --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8f7ea01d..985501ac7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.7.16] - 12.01.2025 +## [0.7.16] - 13.01.2025 ### Changes - Removed links for excel spreadsheet ore gen (Pyritie). - Fix maintenance hatch recycling recipes too (fluffle). @@ -11,6 +11,11 @@ - Craft recipe for framed chest so it isn't cheaper then the alternatives (Juzrm). - RU_RU translation for tfc guide book (recently added pages) (8oyNextDoor). - Based gas multiblocks, more suffering! (Pyritie). +- Creosote treated planks fixes (Pyritie). +- Fixed mixer recipes for red/blue steel (Pyritie). +- Added another recipe for Create's electron tubes (Pyritie). +- Electric cheese, tomato sauce and cream (Saaghh). +- Leather producting using GTM machines. ## [0.7.15] - 08.01.2025 ### Changes From 0f1f7a2f6d155084ea9cec9d579f811dc9cdf65b Mon Sep 17 00:00:00 2001 From: Dmitry Date: Sun, 12 Jan 2025 11:58:27 +0700 Subject: [PATCH 22/26] what? --- kubejs/startup_scripts/main_server_script.js | 143 ------------------- 1 file changed, 143 deletions(-) delete mode 100644 kubejs/startup_scripts/main_server_script.js diff --git a/kubejs/startup_scripts/main_server_script.js b/kubejs/startup_scripts/main_server_script.js deleted file mode 100644 index 5adb7f640..000000000 --- a/kubejs/startup_scripts/main_server_script.js +++ /dev/null @@ -1,143 +0,0 @@ -// priority: 1 - -/** - * Событие регистрации предмет-тэгов. - */ -ServerEvents.tags('item', event => { - registerAE2ItemTags(event) - registerAsticorCartsItemTags(event) - registerChiselAndBitsItemTags(event) - registerComputerCraftItemTags(event) - registerCreateItemTags(event) - registerCreateAdditionsItemTags(event) - registerExtendedAE2ItemTags(event) - registerFirmaCivItemTags(event) - registerFirmaLifeItemTags(event) - registerFramedBlocksItemTags(event) - registerFTBQuestsItemTags(event) - registerGTCEUItemTags(event) - registerMegaCellsItemTags(event) - registerMinecraftItemTags(event) - registerMoreRedItemTags(event) - registerHotOrNotItemTags(event) - registerRailWaysItemTags(event) - registerSophisticatedBackpacksItemTags(event) - registerTFCItemTags(event) -}) - -/** - * Событие регистрации блок-тэгов. - */ -ServerEvents.tags('block', event => { - registerAE2BlockTags(event) - registerAsticorCartsBlockTags(event) - registerChiselAndBitsBlockTags(event) - registerComputerCraftBlockTags(event) - registerCreateBlockTags(event) - registerCreateAdditionsBlockTags(event) - registerExtendedAE2BlockTags(event) - registerFirmaCivBlockTags(event) - registerFirmaLifeBlockTags(event) - registerFramedBlocksBlockTags(event) - registerFTBQuestsBlockTags(event) - registerGTCEUBlockTags(event) - registerMegaCellsBlockTags(event) - registerMinecraftBlockTags(event) - registerMoreRedBlockTags(event) - registerHotOrNotBlockTags(event) - registerRailWaysBlockTags(event) - registerSophisticatedBackpacksBlockTags(event) - registerTFCBlockTags(event) -}) - -/** - * Событие регистрации жидкость-тэгов. - */ -ServerEvents.tags('fluid', event => { - registerCreateFluidTags(event) - registerCreateAdditionsFluidTags(event) - registerFirmaLifeBlockTags(event) - registerTFCFluidTags(event) -}) - -/** - * Событие регистрации тегов структур. - */ -ServerEvents.tags('worldgen/placed_feature', event => { - registerFirmaLifePlacedFeatures(event) - registerTFCPlacedFeatures(event) -}) - -/** - * Событие регистрации датапаков (Здесь можно регистрировать теги, данные, рецепты, общий метод короче). - * Срабатывает до инициализации рецептов, но после тегов. - */ -ServerEvents.highPriorityData(event => { - registerComputerCraftData(event) -}) - -/** - * Событие регистрации датапаков для TFC (Здесь можно регистрировать теги, данные, рецепты, общий метод короче). - * Срабатывает до инициализации рецептов, но после тегов. - */ -TFCEvents.data(event => { - registerTFCDataForGTCEU(event) - registerTFCDataForTFC(event) - registerTFCDataForTreeTap(event) - registerTFCDataForWaterFlasks(event) -}) - -/** - * Событие регистрации лут-тейблов. - * Срабатывает до инициализации рецептов, но после датапаков и тегов. - */ -LootJS.modifiers((event) => { - registerGTCEULoots(event) -}); - -/** - * Событие регистрации рудных жил. - * Не представляю когда срабатывает, но явно после тегов и датапаков. - */ -GTCEuServerEvents.oreVeins(event => { - // event.removeAll() -}) - -/** - * Событие регистрации рецептов. - * Срабатывает после инициализации датапаков и тегов. - */ -ServerEvents.recipes(event => { - registerAE2Recipes(event) - registerAsticorCartsRecipes(event) - registerAE2InsertExportCardRecipes(event) - registerAE2NetworkAnalyzerRecipes(event) - registerAE2WTLibRecipes(event) - registerChiselAndBitsRecipes(event) - registerComputerCraftRecipes(event) - registerCreateRecipes(event) - registerCreateAdditionsRecipes(event) - registerCreateConnectedRecipes(event) - registerExtendedAE2Recipes(event) - registerExposureRecipes(event) - registerEtchedRecipes(event) - registerFirmaCivRecipes(event) - registerFirmaLifeRecipes(event) - registerFramedBlocksRecipes(event) - registerFTBQuestsRecipes(event) - registerGTCEURecipes(event) - registerHandGliderRecipes(event) - registerHotOrNotRecipes(event) - registerMegaCellsRecipes(event) - registerMERequesterRecipes(event) - registerMinecraftRecipes(event) - registerMoreRedRecipes(event) - registerRailWaysRecipes(event) - registerSophisticatedBackpacksRecipes(event) - registerTfceaRecipes(event) - registerTFCRecipes(event) - registerTFCGroomingStationRecipes(event) - registerToolBeltRecipes(event) - registerTreeTapRecipes(event) - registerWaterFlasksRecipes(event) -}) \ No newline at end of file From bdb0e05bebdb6bf0dc477e831300096b5640afc9 Mon Sep 17 00:00:00 2001 From: Dmitry <52341158+Exzept1on@users.noreply.github.com> Date: Sun, 12 Jan 2025 12:37:34 +0700 Subject: [PATCH 23/26] Update pakku.json Signed-off-by: Dmitry <52341158+Exzept1on@users.noreply.github.com> --- pakku.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pakku.json b/pakku.json index ef5602af5..ea22ac9a0 100644 --- a/pakku.json +++ b/pakku.json @@ -1,6 +1,6 @@ { "name": "TerraFirmaGreg-Modern", - "version": "0.7.15", + "version": "0.7.16", "description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.", "author": "Exception, Xikaro", "overrides": [ @@ -188,4 +188,4 @@ "side": "CLIENT" } } -} \ No newline at end of file +} From 2a89fa630aca82caefa9ab846b6362302be18f27 Mon Sep 17 00:00:00 2001 From: Xikaro <55663835+Xikaro@users.noreply.github.com> Date: Sun, 12 Jan 2025 10:41:04 +0500 Subject: [PATCH 24/26] Update build.yml Signed-off-by: Xikaro <55663835+Xikaro@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aecc5873a..a7b61bf4b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -441,7 +441,7 @@ jobs: - name: 🚀 Create release id: release - uses: softprops/action-gh-release@v2.1.0 + uses: softprops/action-gh-release@v2.1.1 with: name: ${{ needs.info.outputs.project_version }} tag_name: ${{ needs.info.outputs.project_version }} @@ -484,4 +484,4 @@ jobs: ```markdown ${{ steps.truncated.outputs.text }} - ...``` - ** [Read more...](${{ needs.release-github.outputs.url }}) ** \ No newline at end of file + ** [Read more...](${{ needs.release-github.outputs.url }}) ** From af5a0638e5b7a004d28d2ac7d92c90d7ac9d6d09 Mon Sep 17 00:00:00 2001 From: Xikaro <55663835+Xikaro@users.noreply.github.com> Date: Sun, 12 Jan 2025 10:41:50 +0500 Subject: [PATCH 25/26] Update build.yml Signed-off-by: Xikaro <55663835+Xikaro@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a7b61bf4b..6a4e0e05a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -441,7 +441,7 @@ jobs: - name: 🚀 Create release id: release - uses: softprops/action-gh-release@v2.1.1 + uses: softprops/action-gh-release@v2.2.1 with: name: ${{ needs.info.outputs.project_version }} tag_name: ${{ needs.info.outputs.project_version }} From fface8041c662ded9a4a43106517fb699cd729ce Mon Sep 17 00:00:00 2001 From: Xikaro <0regon.end@gmail.com> Date: Sun, 12 Jan 2025 10:56:34 +0500 Subject: [PATCH 26/26] workflows --- .github/workflows/build.yml | 164 ++++++++++++++++++------------------ CHANGELOG.md | 2 +- 2 files changed, 82 insertions(+), 84 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6a4e0e05a..468bc64fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,9 +9,6 @@ concurrency: group: ${{ github.workflow }} cancel-in-progress: true -permissions: - pull-requests: none - env: RELEASE_TYPE: "release" MINECRAFT_VERSION: "1.20.1" @@ -326,86 +323,6 @@ jobs: path: .pakku/multimc-overrides/${{ needs.info.outputs.project_full_name }}-multimc.zip if-no-files-found: error - release-curseforge: - name: 🚀 Release to CurseForge - needs: [info, build-modpack, build-server] - runs-on: ubuntu-latest - outputs: - id: ${{ steps.release.outputs.id }} - - steps: - - name: 🔒 Check if CURSEFORGE_TOKEN exist - shell: bash - run: | - if [ "${{ secrets.CURSEFORGE_TOKEN }}" == '' ]; then - echo '::error::No value found for secret key `CURSEFORGE_TOKEN`. See https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1 - fi - - - name: 📦 Download artifact curseforge - uses: actions/download-artifact@v4.1.8 - with: - name: ${{ needs.info.outputs.project_full_name }}-curseforge - - - name: 📦 Download artifact server - uses: actions/download-artifact@v4.1.8 - with: - name: ${{ needs.info.outputs.project_full_name }}-serverpack - - - name: 🚀 Upload Curseforge - id: release - uses: Xikaro/upload-curseforge-modpack-action@1.1.1 - with: - api-token: ${{ secrets.CURSEFORGE_TOKEN }} - project-id: ${{ vars.CURSEFORGE_ID }} - display-name: ${{ needs.info.outputs.project_full_name }} - modpack-path: ${{ needs.info.outputs.project_full_name }}-curseforge.zip - server-display-name: ${{ needs.info.outputs.project_full_name }}-serverpack - modpack-server-path: ${{ needs.info.outputs.project_full_name }}-serverpack.zip - changelog: | - ${{ needs.info.outputs.changelog }} - ${{ needs.info.outputs.diff }} - changelog-format: markdown - game-version: ${{ needs.info.outputs.minecraft_version }} - release-type: ${{ needs.info.outputs.release_type }} - - # release-modrinth: - # name: 🚀 Release to Modrinth - # needs: [info, build-modpack, build-server] - # runs-on: ubuntu-latest - - # steps: - # - name: 🔒 Check if MODRINTH_API_TOKEN exist - # shell: bash - # run: | - # if [ "${{ secrets.MODRINTH_TOKEN }}" == '' ]; then - # echo '::error::No value found for secret key `MODRINTH_TOKEN`. See https://docs.github.com/en/ actionssecurity-guides/ encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1 - # fi - - # - name: 📦 Download artifact modrinth - # uses: actions/download-artifact@v4.1.8 - # with: - # name: ${{ needs.info.outputs.project_full_name }}-modrinth - - # - name: 📦 Download artifact server - # uses: actions/download-artifact@v4.1.8 - # with: - # name: ${{ needs.info.outputs.project_full_name }}-serverpack - - # - name: 🚀 Upload Modrinth - # id: release - # uses: Xikaro/upload-curseforge-modpack-action@1.1.1 - # with: - # api-token: ${{ secrets.MODRINTH_TOKEN }} - # project-id: ${{ vars.MODRINTH_ID }} - # modpack-path: ${{ needs.info.outputs.project_full_name }}-modrinth.mrpack - # modpack-server-path: ${{ needs.info.outputs.project_full_name }}-serverpack.zip - # changelog: ${{ needs.info.outputs.changelog }} - # changelog-format: markdown - # game-version: ${{ needs.info.outputs.minecraft_version }} - # display-name: ${{ needs.info.outputs.project_full_name }} - # server-display-name: ${{ needs.info.outputs.project_full_name }}-serverpack - # release-type: ${{ needs.info.outputs.release_type }} - release-github: name: 🚀 Release to GitHub needs: [info, build-modpack, build-server, build-multimc] @@ -456,6 +373,87 @@ jobs: generate_release_notes: true token: ${{ secrets.GITHUB_TOKEN }} + release-curseforge: + name: 🚀 Release to CurseForge + needs: [info, build-modpack, build-server, release-github] + runs-on: ubuntu-latest + outputs: + id: ${{ steps.release.outputs.id }} + + steps: + - name: 🔒 Check if CURSEFORGE_TOKEN exist + shell: bash + run: | + if [ "${{ secrets.CURSEFORGE_TOKEN }}" == '' ]; then + echo '::error::No value found for secret key `CURSEFORGE_TOKEN`. See https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1 + fi + + - name: 📦 Download artifact curseforge + uses: actions/download-artifact@v4.1.8 + with: + name: ${{ needs.info.outputs.project_full_name }}-curseforge + + - name: 📦 Download artifact server + uses: actions/download-artifact@v4.1.8 + with: + name: ${{ needs.info.outputs.project_full_name }}-serverpack + + - name: 🚀 Upload Curseforge + id: release + uses: Xikaro/upload-curseforge-modpack-action@1.1.1 + with: + api-token: ${{ secrets.CURSEFORGE_TOKEN }} + project-id: ${{ vars.CURSEFORGE_ID }} + display-name: ${{ needs.info.outputs.project_full_name }} + modpack-path: ${{ needs.info.outputs.project_full_name }}-curseforge.zip + server-display-name: ${{ needs.info.outputs.project_full_name }}-serverpack + modpack-server-path: ${{ needs.info.outputs.project_full_name }}-serverpack.zip + changelog: | + ${{ needs.info.outputs.changelog }} + ${{ needs.info.outputs.diff }} + changelog-format: markdown + game-version: ${{ needs.info.outputs.minecraft_version }} + release-type: ${{ needs.info.outputs.release_type }} + + # release-modrinth: + # name: 🚀 Release to Modrinth + # needs: [info, build-modpack, build-server, release-github] + # runs-on: ubuntu-latest + + # steps: + # - name: 🔒 Check if MODRINTH_API_TOKEN exist + # shell: bash + # run: | + # if [ "${{ secrets.MODRINTH_TOKEN }}" == '' ]; then + # echo '::error::No value found for secret key `MODRINTH_TOKEN`. See https://docs.github.com/en/ actionssecurity-guides/ encrypted-secrets#creating-encrypted-secrets-for-a-repository' && exit 1 + # fi + + # - name: 📦 Download artifact modrinth + # uses: actions/download-artifact@v4.1.8 + # with: + # name: ${{ needs.info.outputs.project_full_name }}-modrinth + + # - name: 📦 Download artifact server + # uses: actions/download-artifact@v4.1.8 + # with: + # name: ${{ needs.info.outputs.project_full_name }}-serverpack + + # - name: 🚀 Upload Modrinth + # id: release + # uses: Xikaro/upload-curseforge-modpack-action@1.1.1 + # with: + # api-token: ${{ secrets.MODRINTH_TOKEN }} + # project-id: ${{ vars.MODRINTH_ID }} + # modpack-path: ${{ needs.info.outputs.project_full_name }}-modrinth.mrpack + # modpack-server-path: ${{ needs.info.outputs.project_full_name }}-serverpack.zip + # changelog: ${{ needs.info.outputs.changelog }} + # changelog-format: markdown + # game-version: ${{ needs.info.outputs.minecraft_version }} + # display-name: ${{ needs.info.outputs.project_full_name }} + # server-display-name: ${{ needs.info.outputs.project_full_name }}-serverpack + # release-type: ${{ needs.info.outputs.release_type }} + + discord-message: name: 📱 Discord Message needs: [info, release-curseforge, release-github] diff --git a/CHANGELOG.md b/CHANGELOG.md index 985501ac7..479e28937 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.7.16] - 13.01.2025 +## [0.7.16] - 12.01.2025 ### Changes - Removed links for excel spreadsheet ore gen (Pyritie). - Fix maintenance hatch recycling recipes too (fluffle).