From 9f6e7eda4b5b3f734ec8cc69fca2345f7758dd13 Mon Sep 17 00:00:00 2001 From: Sakura Date: Mon, 2 Mar 2026 04:43:28 +0200 Subject: [PATCH] Create: Copycats+ Integration (#3232) * Create: Copycats+ Integration * pakku * changelog spelling --------- Co-authored-by: Redeix Co-authored-by: Redeix --- CHANGELOG.md | 1 + kubejs/server_scripts/create/recipes.js | 24 ++-- .../create_connected/recipes.js | 3 +- .../server_scripts/create_connected/tags.js | 5 + .../server_scripts/create_copycats/recipes.js | 117 ++++++++++++++++++ kubejs/server_scripts/create_copycats/tags.js | 8 ++ kubejs/server_scripts/main_server_script.js | 2 + .../create_connected/constants.js | 14 +++ .../create_copycats/constants.js | 16 +++ pakku-lock.json | 70 +++++++++++ 10 files changed, 241 insertions(+), 19 deletions(-) create mode 100644 kubejs/server_scripts/create_copycats/recipes.js create mode 100644 kubejs/server_scripts/create_copycats/tags.js create mode 100644 kubejs/startup_scripts/create_copycats/constants.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ff425d38..cb9f77727 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Increased basic harvest basket durability to 256 @Redeix - Remove durability from trowels @Redeix - Harvest baskets can now harvest from firmalife greenhouse trellis, bonsai, and hanging planters. @Redeix +- Added Create: Copycats+ compat. (#3232) @SakuraKitsurugi ### Bug fixes - Fixed multiple exceptions being thrown during tooltip creation (#3188) @Nebby1999 ### Translation updates diff --git a/kubejs/server_scripts/create/recipes.js b/kubejs/server_scripts/create/recipes.js index 258ed8e54..d961743a7 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -68,6 +68,8 @@ const registerCreateRecipes = (event) => { event.remove({ type: 'minecraft:stonecutting', input: 'create:rose_quartz' }) event.remove({ type: 'minecraft:stonecutting', input: 'create:polished_rose_quartz' }) event.remove({ type: 'minecraft:stonecutting', input: 'minecraft:iron_ingot' }) + event.remove({ type: "minecraft:stonecutting", output: "create:copycat_step" }) + event.remove({ type: "minecraft:stonecutting", output: "create:copycat_panel" }) event.remove({ type: 'create:spout_filling', id: 'create:potions' }) event.remove({ type: 'create:spout_filling', id: 'create:fill_minecraft_glass_bottle_with_gtceu_potion' }) event.remove({ type: 'create:draining', id: 'create:potions' }) @@ -1302,23 +1304,6 @@ const registerCreateRecipes = (event) => { A: '#forge:rods/copper' }).id('tfg:create/shaped/copper_scaffolding') - // Цинковая ступень - event.shaped('4x create:copycat_step', [ - 'A ', - ' B' - ], { - A: '#forge:plates/zinc', - B: '#forge:tools/files' - }).id('tfg:create/shapeless/copycat_step') - - // Цинковая панель - event.shaped('4x create:copycat_panel', [ - 'A B', - ], { - A: '#forge:plates/zinc', - B: '#forge:tools/files' - }).id('tfg:create/shapeless/copycat_panel') - // Деталь рельса event.shaped('3x create:metal_girder', [ 'AAA', @@ -2405,6 +2390,11 @@ const registerCreateRecipes = (event) => { event.stonecutting('4x create:andesite_bars', '#forge:ingots/tin_alloy') + //Copycats + + event.stonecutting("16x create:copycat_step", "#forge:ingots/zinc") + event.stonecutting("16x create:copycat_panel", "#forge:ingots/zinc") + const create_metals = [ { metal: 'andesite', material: 'tin_alloy', tier: 3 }, { metal: 'brass', material: 'brass', tier: 2 }, diff --git a/kubejs/server_scripts/create_connected/recipes.js b/kubejs/server_scripts/create_connected/recipes.js index 258e30fe0..0c8c1e19c 100644 --- a/kubejs/server_scripts/create_connected/recipes.js +++ b/kubejs/server_scripts/create_connected/recipes.js @@ -8,8 +8,7 @@ const registerCreateConnectedRecipes = (event) => { event.remove({ output: item }) }) - event.stonecutting('create_connected:copycat_box', '#forge:ingots/zinc') - event.stonecutting('2x create_connected:copycat_catwalk', '#forge:ingots/zinc') + event.remove({ input: "create_connected:copycat_vertical_step", output: "create:copycat_step" }); // Remove Fluid Vessel Crafting event.remove({ id: 'create_connected:crafting/kinetics/fluid_vessel' }) diff --git a/kubejs/server_scripts/create_connected/tags.js b/kubejs/server_scripts/create_connected/tags.js index 87d8e0ede..76b5affb9 100644 --- a/kubejs/server_scripts/create_connected/tags.js +++ b/kubejs/server_scripts/create_connected/tags.js @@ -7,5 +7,10 @@ const registerCreateConnectedItemTags = (event) => { event.add('c:hidden_from_recipe_viewers', item) }) + global.CREATE_CONNECTED_HIDDEN_ITEMS.forEach(item => { + event.removeAllTagsFrom(item) + event.add('c:hidden_from_recipe_viewers', item) + }) + event.remove('minecraft:creeper_drop_music_discs', ['create_connected:music_disc_elevator', 'create_connected:music_disc_interlude']) } \ No newline at end of file diff --git a/kubejs/server_scripts/create_copycats/recipes.js b/kubejs/server_scripts/create_copycats/recipes.js new file mode 100644 index 000000000..31605a7df --- /dev/null +++ b/kubejs/server_scripts/create_copycats/recipes.js @@ -0,0 +1,117 @@ +// priority: 0 +"use strict"; + +const registerCreateCopycatsRecipes = (event) => { + event.remove({ mod: "copycats" }) + + // Shapeless + event.shapeless("copycats:copycat_stairs", [ + "copycats:copycat_vertical_stairs" + ]).id("tfg:copycat_stairs") + + event.shapeless("copycats:copycat_vertical_stairs", [ + "copycats:copycat_stairs" + ]).id("tfg:copycat_vertical_stairs") + + event.shapeless("copycats:copycat_slice", [ + "copycats:copycat_vertical_slice" + ]).id("tfg:copycat_slice") + + event.shapeless("copycats:copycat_vertical_slice", [ + "copycats:copycat_slice" + ]).id("tfg:copycat_vertical_slice") + + event.shapeless("copycats:copycat_pane", [ + "copycats:copycat_flat_pane" + ]).id("tfg:copycat_pane") + + event.shapeless("copycats:copycat_flat_pane", [ + "copycats:copycat_pane" + ]).id("tfg:copycat_flat_pane") + + event.shapeless("copycats:copycat_half_layer", [ + "copycats:copycat_vertical_half_layer" + ]).id("tfg:copycat_half_layer") + + event.shapeless("copycats:copycat_vertical_half_layer", [ + "copycats:copycat_half_layer" + ]).id("tfg:copycat_vertical_half_layer") + + event.shapeless("copycats:copycat_slope", [ + "copycats:copycat_vertical_slope" + ]).id("tfg:copycat_slope") + + event.shapeless("copycats:copycat_vertical_slope", [ + "copycats:copycat_slope" + ]).id("tfg:copycat_vertical_slope") + + event.shapeless("copycats:copycat_vertical_step", [ + "create:copycat_step" + ]).id("tfg:copycat_vertical_step") + + // Shaped + event.shaped("copycats:copycat_catwalk", [ + "A A", + " A ", + " " + ], { + A: "copycats:copycat_board" + }).id("tfg:copycat_catwalk") + + event.shaped("copycats:copycat_box", [ + "AA ", + "A A", + " AA" + ], { + A: "copycats:copycat_board" + }).id("tfg:copycat_box") + + event.shaped('copycats:copycat_fluid_pipe', [ + 'BAB' + ], { + A: '#forge:tools/hammers', + B: '#forge:plates/zinc' + }).id('tfg:copycats/shaped/copycat_fluid_pipe') + + // Stonecutting + event.stonecutting("4x copycats:copycat_block", "#forge:ingots/zinc") + event.stonecutting("8x copycats:copycat_slab", "#forge:ingots/zinc") + event.stonecutting("4x copycats:copycat_stairs", "#forge:ingots/zinc") + event.stonecutting("4x copycats:copycat_vertical_stairs", "#forge:ingots/zinc") + event.stonecutting("4x copycats:copycat_fence", "#forge:ingots/zinc") + event.stonecutting("4x copycats:copycat_wall", "#forge:ingots/zinc") + event.stonecutting("16x copycats:copycat_vertical_step", "#forge:ingots/zinc") + event.stonecutting("16x copycats:copycat_beam", "#forge:ingots/zinc") + event.stonecutting("64x copycats:copycat_slice", "#forge:ingots/zinc") + event.stonecutting("64x copycats:copycat_vertical_slice", "#forge:ingots/zinc") + event.stonecutting("64x copycats:copycat_corner_slice", "#forge:ingots/zinc") + event.stonecutting("4x copycats:copycat_ghost_block", "#forge:ingots/zinc") + event.stonecutting("32x copycats:copycat_layer", "#forge:ingots/zinc") + event.stonecutting("32x copycats:copycat_half_panel", "#forge:ingots/zinc") + event.stonecutting("32x copycats:copycat_pane", "#forge:ingots/zinc") + event.stonecutting("32x copycats:copycat_flat_pane", "#forge:ingots/zinc") + event.stonecutting("32x copycats:copycat_byte", "#forge:ingots/zinc") + event.stonecutting("64x copycats:copycat_byte_panel", "#forge:ingots/zinc") + event.stonecutting("32x copycats:copycat_board", "#forge:ingots/zinc") + event.stonecutting("64x copycats:copycat_half_layer", "#forge:ingots/zinc") + event.stonecutting("64x copycats:copycat_vertical_half_layer", "#forge:ingots/zinc") + event.stonecutting("64x copycats:copycat_stacked_half_layer", "#forge:ingots/zinc") + event.stonecutting("8x copycats:copycat_slope", "#forge:ingots/zinc") + event.stonecutting("8x copycats:copycat_vertical_slope", "#forge:ingots/zinc") + event.stonecutting("32x copycats:copycat_slope_layer", "#forge:ingots/zinc") + event.stonecutting("copycats:copycat_door", "#forge:ingots/zinc") + event.stonecutting("copycats:copycat_sliding_door", "#forge:ingots/zinc") + event.stonecutting("copycats:copycat_folding_door", "#forge:ingots/zinc") + event.stonecutting("copycats:copycat_trapdoor", "#forge:ingots/zinc") + event.stonecutting("4x copycats:copycat_fence_gate", "#forge:ingots/zinc") + event.stonecutting("24x copycats:copycat_ladder", "#forge:ingots/zinc") + + // GT Assembler + event.recipes.gtceu.assembler('tfg:copycats/copycat_fluid_pipe') + .itemInputs('2x #forge:plates/zinc') + .circuit(3) + .itemOutputs('copycats:copycat_fluid_pipe') + .duration(200) + .EUt(20) + .addMaterialInfo(true) +} diff --git a/kubejs/server_scripts/create_copycats/tags.js b/kubejs/server_scripts/create_copycats/tags.js new file mode 100644 index 000000000..257b7add4 --- /dev/null +++ b/kubejs/server_scripts/create_copycats/tags.js @@ -0,0 +1,8 @@ +"use strict"; + +const registerCreateCopycatsItemTags = (event) => { + global.CREATE_COPYCATS_DISABLED_ITEMS.forEach((item) => { + event.removeAllTagsFrom(item); + event.add("c:hidden_from_recipe_viewers", item) + }) +} diff --git a/kubejs/server_scripts/main_server_script.js b/kubejs/server_scripts/main_server_script.js index 5e0b5cd23..15b128fde 100644 --- a/kubejs/server_scripts/main_server_script.js +++ b/kubejs/server_scripts/main_server_script.js @@ -20,6 +20,7 @@ ServerEvents.tags('item', event => { registerCreateItemTags(event) registerCreateAdditionsItemTags(event) registerCreateConnectedItemTags(event) + registerCreateCopycatsItemTags(event) registerCreateDecoItemTags(event) registerCreateFactoryLogisticsItemTags(event) registerCreateHypertubeItemTags(event) @@ -239,6 +240,7 @@ ServerEvents.recipes(event => { registerCreateRecipes(event) registerCreateAdditionsRecipes(event) registerCreateConnectedRecipes(event) + registerCreateCopycatsRecipes(event) registerCreatedecoRecipes(event) registerCreateExtraGaugesRecipes(event) registerCreateFactoryLogisticsRecipes(event) diff --git a/kubejs/startup_scripts/create_connected/constants.js b/kubejs/startup_scripts/create_connected/constants.js index 821512bfc..561e0b8d0 100644 --- a/kubejs/startup_scripts/create_connected/constants.js +++ b/kubejs/startup_scripts/create_connected/constants.js @@ -19,4 +19,18 @@ global.CREATE_CONNECTED_DISABLED_ITEMS = [ 'create_connected:brass_encased_cross_connector', 'create_connected:kinetic_battery', 'create_connected:charged_kinetic_battery' +] + +global.CREATE_CONNECTED_HIDDEN_ITEMS = [ + 'create_connected:copycat_block', + 'create_connected:copycat_slab', + 'create_connected:copycat_beam', + 'create_connected:copycat_vertical_step', + 'create_connected:copycat_stairs', + 'create_connected:copycat_fence', + 'create_connected:copycat_fence_gate', + 'create_connected:copycat_wall', + 'create_connected:copycat_board', + 'create_connected:copycat_box', + 'create_connected:copycat_catwalk' ] \ No newline at end of file diff --git a/kubejs/startup_scripts/create_copycats/constants.js b/kubejs/startup_scripts/create_copycats/constants.js new file mode 100644 index 000000000..589228e48 --- /dev/null +++ b/kubejs/startup_scripts/create_copycats/constants.js @@ -0,0 +1,16 @@ +// priority: -100 +"use strict"; + +global.CREATE_COPYCATS_DISABLED_ITEMS = [ + 'copycats:copycat_iron_door', + 'copycats:copycat_iron_trapdoor', + 'copycats:copycat_wooden_button', + 'copycats:copycat_stone_button', + 'copycats:copycat_wooden_pressure_plate', + 'copycats:copycat_stone_pressure_plate', + 'copycats:copycat_light_weighted_pressure_plate', + 'copycats:copycat_heavy_weighted_pressure_plate', + 'copycats:copycat_shaft', + 'copycats:copycat_cogwheel', + 'copycats:copycat_large_cogwheel' +]; diff --git a/pakku-lock.json b/pakku-lock.json index eceefc372..539b98497 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -4016,6 +4016,76 @@ } ] }, + { + "pakku_id": "NJIUJpYFj0cVIhjt", + "pakku_links": [ + "Nw8xTCQngHA15ilh" + ], + "type": "MOD", + "side": "BOTH", + "slug": { + "curseforge": "copycats", + "modrinth": "copycats" + }, + "name": { + "curseforge": "Create: Copycats+", + "modrinth": "Create: Copycats+" + }, + "id": { + "curseforge": "968398", + "modrinth": "UT2M39wf" + }, + "files": [ + { + "type": "curseforge", + "file_name": "copycats-3.0.7+mc.1.20.1-forge.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/7634/682/copycats-3.0.7+mc.1.20.1-forge.jar", + "id": "7634682", + "parent_id": "968398", + "hashes": { + "sha1": "5d0f497695fc2ee4ef89f1898458882b9d2d3aad", + "md5": "47e13c8058d400e4a6316d00f451b29c" + }, + "required_dependencies": [ + "328085" + ], + "size": 1996097, + "date_published": "2026-02-16T17:37:39.993Z" + }, + { + "type": "modrinth", + "file_name": "copycats-3.0.7+mc.1.20.1-forge.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge", + "neoforge" + ], + "release_type": "release", + "url": "https://cdn.modrinth.com/data/UT2M39wf/versions/z7s54cjL/copycats-3.0.7+mc.1.20.1-forge.jar", + "id": "z7s54cjL", + "parent_id": "UT2M39wf", + "hashes": { + "sha512": "163499b08adb6198630019b74c32465c569145ad36e956c5b4d1e6537c0eb52fd9217ebd90b7f05f5efaf084d71533481e46738295609f31e50bec6b7941c91b", + "sha1": "5d0f497695fc2ee4ef89f1898458882b9d2d3aad" + }, + "required_dependencies": [ + "LNytGWDc" + ], + "size": 1996097, + "date_published": "2026-02-16T17:37:41.323792Z" + } + ] + }, { "pakku_id": "WR8Eaw7xnPnm4UOD", "pakku_links": [