diff --git a/CHANGELOG.md b/CHANGELOG.md index fb175de77..7a307f4d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [0.6.13] - Planned on ? +### Changes +- Исправлены рецепты бамбуковых полублоков, ступеней. (Созданы рецепты через ассемблер и другие машины) +- Исправлены рецепты кварцевых полублоков, ступеней. (Созданы рецепты через ассемблер и другие машины) +- Исправлены рецепты кирпичных полублоков, ступеней. (Созданы рецепты через ассемблер и другие машины) +- Исправлены рецепты деревянных полублоков, ступеней, заборов и тд. (Созданы рецепты через ассемблер и другие машины) +- Исправлены рецепты алабастровых полублоков, ступеней, заборов и тд. (Созданы рецепты через ассемблер и другие машины) + +- Удалена примитивная помпа GTCEu. +- Добавлено множество рецептов в миксере дублирующие рецепты бочки TFC. +- Исправлен рецепт лампы из TFC. +- Добавлено больше рецептов для предметов TFC, через машины GTCEu. +- Добавлено больше рецептов для предметов FirmaLife, через машины GTCEu. +- Заменены бутылочки из Minecraft на TFC варианты. +- Добавлен TFC рецепт стеклодувки для стеклянной трубки из GTCEu. +- Отключена механика рубки дерева топором GTCEu, сруб дерева все еще работает, потому что эта механика есть в TFC. +- Исправлен баг, когда не тратилась прочность у ножа или косы во время сруба травы. +- Добавлены JEI страницы переработки для бедных и богатых руд. +- Возвращены бронзовые паровые бойлеры. + ## [0.6.12] - Planned on 15.02.2024 ### Changes - Повсеместно улучшены квесты примитивной и стальной эры. @@ -9,21 +29,15 @@ - Добавлен перевод для основных квестов примитивной эры. - Исправлено зависание игры при открытии меню квестов, это был баг мода FTB-Quests. - Удалено множество рецептов незер блоков и предметов, будут возвращены, когда будет добавлен ад. -- Добавлены рецепты для получения окисленных блоков меди, ступенек из них и так далее. - Исправлен рецепт стен из песчанника в резчике. -- Исправлены некоторы рецепты ступеней, полублоков, стен, кнопок, плит, чтобы у всех был одинаковый рецепт, но с разными материалами. - -- Удалена примитивная помпа GTCEu. -- Добавлено множество рецептов в миксере дублирующие рецепты бочки TFC. -- Исправлен рецепт лампы из TFC. -- Добавлено больше рецептов для предметов TFC, через машины GTCEu. -- Добавлено больше рецептов для предметов FirmaLife, через машины GTCEu. +- В рецепты вырезания камня в GTCEu Cutter добавлен выход камня в виде пыли. +- Добавлены рецепты для получения окисленных блоков меди, ступенек из них и так далее. +- Удален рецепт солнечного парового бойлера. +- Удалены рецепты песчаных полублоков, лестниц и стен в верстаке. - Исправлено отображение границ чанков. -- Заменены бутылочки из Minecraft на TFC варианты. -- Добавлен TFC рецепт стеклодувки для стеклянной трубки. -- Отключена механика рубки дерева топором GTCEu, сруб дерева все еще работает, потому что эта механика есть в TFC. -- Исправлен баг, когда не тратилась прочность у ножа или косы во время сруба травы. -- Добавлены JEI страницы переработки для бедных и богатых руд. +- В очередной раз настроен BetterF3. +- Исправлен баг, когда руда выкопанная молотом для бурения не дропала богатые и бедные куски. +- Исправлен баг, когда майнер не добывал богатые и бедные куски руды. ## [0.6.11] - 05.02.2024 ### Changes diff --git a/config/betterf3.toml b/config/betterf3.toml new file mode 100644 index 000000000..e992dc60c --- /dev/null +++ b/config/betterf3.toml @@ -0,0 +1,219 @@ + +[general] + disable_mod = false + hide_bossbar = true + shadow_text = true + auto_start = false + animationSpeed = 1.0 + hide_debug_crosshair = false + background_color = 1867534416 + space_modules = false + always_show_profiler = false + animations = true + fontScale = 1.0 + hide_sidebar = true + always_show_tps = false + +[[modules_right]] + memory_color_toggle = true + time_format = "HH:mm:ss" + name = "system" + name_color = 16755200 + value_color = 5636095 + enabled = true + + [modules_right.lines] + opengl_version = true + allocation_rate = true + display = true + java_version = true + gpu_driver = true + memory_usage = true + allocated_memory = true + cpu = true + gpu_utilization = true + time = true + gpu = true + +[[modules_right]] + name = "miscright" + name_color = 16645526 + value_color = 5636095 + enabled = true + + [modules_right.lines] + misc_right = true + +[[modules_right]] + empty_lines = 1 + name = "empty" + enabled = true + + [modules_right.lines] + nothing = true + +[[modules_right]] + name = "target" + name_color = 43775 + value_color = 16777045 + enabled = true + + [modules_right.lines] + id_fluid = true + fluid_tags = true + block_states = true + targeted_block = true + block_tags = true + id_block = true + nothing = true + nothing2 = true + targeted_fluid = true + targeted_entity = true + fluid_states = true + +[[modules_left]] + name = "minecraft" + name_color = 10506797 + value_color = 43520 + enabled = true + + [modules_left.lines] + minecraft = true + +[[modules_left]] + color_high = 5635925 + color_med = 16777045 + name = "fps" + enabled = true + color_low = 16733525 + + [modules_left.lines] + fps = true + +[[modules_left]] + name = "graphics" + name_color = 16755200 + value_color = 5636095 + enabled = true + + [modules_left.lines] + shader = true + render_distance = true + graphics = true + clouds = true + biome_blend_radius = true + +[[modules_left]] + name = "server" + name_color = 11184810 + value_color = 16777045 + enabled = true + + [modules_left.lines] + server_tick = true + packets_sent = true + packets_received = true + +[[modules_left]] + name = "chunks" + chunks_disabled_color = 16733525 + name_color = 43775 + value_color = 16777045 + total_chunks_color = 16755200 + chunks_enabled_color = 5635925 + enabled = true + + [modules_left.lines] + chunk_file = true + available_buffers = true + loaded_chunks_server = true + forceloaded_chunks = true + chunk_culling = true + pending_uploads = true + pending_chunks = true + loaded_chunks = true + spawn_chunks = true + client_chunk_cache = true + chunk_sections = true + +[[modules_left]] + name = "location" + name_color = 43520 + value_color = 5636095 + enabled = true + + [modules_left.lines] + light = true + biome = true + rotation = true + facing = true + slime_chunk = true + local_difficulty = true + day_ticks = true + days_played = true + dimension = true + highest_block = true + highest_block_server = true + light_server = true + +[[modules_left]] + name = "entity" + name_color = 16733525 + value_color = 16777045 + total_entities_color = 16755200 + enabled = true + + [modules_left.lines] + entities = true + water_creature = true + underground_water_creature = true + ambient = true + particles = true + axolotls = true + creature = true + water_ambient = true + monster = true + misc = true + +[[modules_left]] + maximum_color = 43690 + name = "sound" + name_color = 16755200 + value_color = 5636095 + enabled = true + + [modules_left.lines] + ambient_sounds = true + sounds = true + mood = true + +[[modules_left]] + enabled_color = 5635925 + name = "help" + name_color = 16645526 + value_color = 5636095 + disabled_color = 16733525 + enabled = true + + [modules_left.lines] + help = true + pie_graph = true + fps_tps = true + +[[modules_left]] + empty_lines = 1 + name = "empty" + enabled = true + + [modules_left.lines] + nothing = true + +[[modules_left]] + name = "miscleft" + name_color = 16645526 + value_color = 5636095 + enabled = true + + [modules_left.lines] + misc_left = true + diff --git a/defaultconfigs/firmaciv-server.toml b/defaultconfigs/firmaciv-server.toml new file mode 100644 index 000000000..198809b0b --- /dev/null +++ b/defaultconfigs/firmaciv-server.toml @@ -0,0 +1,11 @@ + +[general] + #Force creation of canoes from specified wood types. Turning this to false will make canoes craftable from any wood type. + canoeWoodRestriction = true + #Force creation of ships and rowboats from specified wood types. Turning this to false will make ships and rowboats craftable from any wood type. + shipWoodRestriction = true + #Force reduceDebugInfo gamerule. Turn this to FALSE if you want coordinates bad. + forceReducedDebugInfo = false + #Disables vanilla boats and base TFC boats from working. + disableVanillaBoatFunctionality = true + diff --git a/kubejs/jsconfig.json b/kubejs/jsconfig.json new file mode 100644 index 000000000..e2acac6af --- /dev/null +++ b/kubejs/jsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "lib": [ + "ES5", + "ES2015" + ], + "rootDirs": [ + "probe/generated", + "probe/user", + "server_scripts", + "startup_scripts", + "client_scripts" + ], + "target": "ES2015" + } +} \ No newline at end of file diff --git a/kubejs/server_scripts/firmalife/recipes.js b/kubejs/server_scripts/firmalife/recipes.js index c8c3df8c2..9e1ab9924 100644 --- a/kubejs/server_scripts/firmalife/recipes.js +++ b/kubejs/server_scripts/firmalife/recipes.js @@ -97,6 +97,16 @@ const registerFirmaLifeRecipes = (event) => { .duration(50) .EUt(7) + // TODO: Не работает потому что грегтех + // Доставание меда из сот + /* + event.recipes.gtceu.assembler(`tfg:firmalife/beehive_honey_decomposition`) + .itemInputs('firmalife:beehive_frame') + .circuit(1) + .itemOutputs('firmalife:beehive_frame', 'firmalife:beeswax') + .duration(10) + .EUt(2)*/ + //#region Рецепты теплиц //#region Медная diff --git a/kubejs/server_scripts/gregtech/loot.js b/kubejs/server_scripts/gregtech/loot.js index 1b6eda0b5..52fd6a496 100644 --- a/kubejs/server_scripts/gregtech/loot.js +++ b/kubejs/server_scripts/gregtech/loot.js @@ -15,12 +15,13 @@ const registerGTCEULoots = (event) => { let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1) let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1) + let crushedOre = ChemicalHelper.get(TagPrefix.crushed, material, 1) + let blockName = `gtceu:${stoneType}_${material.getName()}_ore` if (!richRawOre.isEmpty() && !normalRawOre.isEmpty() && !poorRawOre.isEmpty()) { event.addBlockLootModifier(blockName) - .matchMainHand('#minecraft:pickaxes') .removeLoot(Ingredient.all) .addWeightedLoot([ richRawOre.withChance(0.2), @@ -31,11 +32,22 @@ const registerGTCEULoots = (event) => { if (!stoneTypeDust.isEmpty()) { event.addBlockLootModifier(blockName) - .matchMainHand('#minecraft:pickaxes') .addLoot( LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.25)) ) } + + if (!crushedOre.isEmpty()) { + event.addBlockLootModifier(blockName) + .matchMainHand('#forge:tools/hammers') + .removeLoot(Ingredient.all) + .addWeightedLoot([ + crushedOre.withChance(0.8), + crushedOre.withCount(2).withChance(0.2) + ]); + } + + } }) }) diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 2a4a9cc66..40184da34 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -1337,27 +1337,114 @@ const registerMinecraftRecipes = (event) => { //#endregion - /* - const dead = [ - { input: 'minecraft:copper_block', output: 'minecraft:exposed_copper', name: ''}, - { input: 'minecraft:exposed_copper', output: 'minecraft:weathered_copper', name: ''}, - { input: 'minecraft:weathered_copper', output: 'minecraft:oxidized_copper', name: ''}, - { input: '', output: '', name: ''}, - ];*/ - - const dead1 = [ - {}, - {}, - {}, - {}, - {}, - {}, - {}, - ]; - //#region Добавление - generateCutterRecipe() + for (let i = 0; i < global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS.length; i++) { + let element = global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS[i]; + + // Создание ржавчины + if (i < global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS.length / 2 - 1) { + + let element2 = global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS[i + 1] + + event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_block_${element.name}`) + .itemInputs(element.block) + .inputFluids(Fluid.of('minecraft:water', 150)) + .circuit(1) + .itemOutputs(element2.block) + .duration(1000) + .EUt(4) + + event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_cutted_${element.name}`) + .itemInputs(element.cutted) + .inputFluids(Fluid.of('minecraft:water', 150)) + .circuit(1) + .itemOutputs(element2.cutted) + .duration(1000) + .EUt(4) + + event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_stairs_${element.name}`) + .itemInputs(element.stairs) + .inputFluids(Fluid.of('minecraft:water', 150)) + .circuit(1) + .itemOutputs(element2.stairs) + .duration(1000) + .EUt(4) + + event.recipes.gtceu.chemical_reactor(`tfg:minecraft/oxidizing_slabs_${element.name}`) + .itemInputs(element.slabs) + .inputFluids(Fluid.of('minecraft:water', 150)) + .circuit(1) + .itemOutputs(element2.slabs) + .duration(1000) + .EUt(4) + } else if (i > global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS.length / 2 - 1) { + let element2 = global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS[i - global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS.length / 2] + + event.recipes.gtceu.assembler(`tfg:minecraft/waxing_block_${element.name}`) + .itemInputs(element2.block, 'firmalife:beeswax') + .circuit(1) + .itemOutputs(element.block) + .duration(50) + .EUt(4) + + event.recipes.gtceu.assembler(`tfg:minecraft/waxing_cutted_${element.name}`) + .itemInputs(element2.cutted, 'firmalife:beeswax') + .circuit(1) + .itemOutputs(element.cutted) + .duration(50) + .EUt(4) + + event.recipes.gtceu.assembler(`tfg:minecraft/waxing_stairs_${element.name}`) + .itemInputs(element2.stairs, 'firmalife:beeswax') + .circuit(1) + .itemOutputs(element.stairs) + .duration(50) + .EUt(4) + + event.recipes.gtceu.assembler(`tfg:minecraft/waxing_slabs_${element.name}`) + .itemInputs(element2.slabs, 'firmalife:beeswax') + .circuit(1) + .itemOutputs(element.slabs) + .duration(50) + .EUt(4) + + } + + // Обрезанный блок + + event.stonecutting(element.cutted, element.block) + .id(`tfg:stonecutting/cutted_${element.name}`) + + generateCutterRecipe(event, element.block, 4, element.cutted, 100, 8, `cutted_${element.name}`) + + // Not working, because JS is shit! + // event.recipes.tfc.chisel(element.cutted, element.block, 'smooth') + // .id(`tfg:chisel/cutted_${element.name}`) + + // Ступени + + event.stonecutting(element.stairs, element.cutted) + .id(`tfg:stonecutting/stairs_${element.name}`) + + generateCutterRecipe(event, element.cutted, 0, [element.stairs, 'gtceu:small_copper_dust'], 100, 8, `stairs_${element.name}`) + + // Not working, because JS is shit! + // event.recipes.tfc.chisel(element.stair, element.cutted, 'stair') + // .id(`tfg:chisel/stair_${element.name}`) + + // Полублоки + + event.stonecutting(element.slabs, element.cutted) + .id(`tfg:stonecutting/slabs_${element.name}`) + + generateCutterRecipe(event, element.cutted, 1, [element.slabs, '2x gtceu:small_copper_dust'], 100, 8, `slabs_${element.name}`) + + // Not working, because JS is shit! + // event.recipes.tfc.chisel(element.slab, element.cutted, 'slab') + // .id(`tfg:chisel/slab_${element.name}`) + + } //#endregion diff --git a/kubejs/server_scripts/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 5c94c3021..e3ebf1358 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -1535,7 +1535,10 @@ const registerTFCRecipes = (event) => { //#region Камень global.TFC_STONE_TYPES.forEach(stone => { - + + let stoneMaterial = GTMaterials.get(stone); + let stoneDust = ChemicalHelper.get(TagPrefix.dust, stoneMaterial, 1) + // Кирпич (предмет) event.recipes.gtceu.assembler(`tfg:tfc/${stone}_loose_to_brick`) .itemInputs(`tfc:rock/loose/${stone}`) @@ -1562,17 +1565,17 @@ const registerTFCRecipes = (event) => { // Сырой камень -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_raw_stairs` }) - generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 0, `tfc:rock/raw/${stone}_stairs`, 100, 8, `${stone}_raw_to_stairs`) + generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 0, [`tfc:rock/raw/${stone}_stairs`, stoneDust], 100, 8, `${stone}_raw_to_stairs`) // Сырой камень -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_raw_slab` }) - generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 1, `2x tfc:rock/raw/${stone}_slab`, 100, 8, `${stone}_raw_to_slab`) + generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 1, [`2x tfc:rock/raw/${stone}_slab`, stoneDust], 100, 8, `${stone}_raw_to_slab`) // Сырой камень -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_raw_wall` }) - generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 2, `tfc:rock/raw/${stone}_wall`, 100, 8, `${stone}_raw_to_wall`) + generateCutterRecipe(event, `tfc:rock/raw/${stone}`, 2, [`tfc:rock/raw/${stone}_wall`, stoneDust], 100, 8, `${stone}_raw_to_wall`) // ? -> Сырая нажимная пластина event.shaped(`tfc:rock/pressure_plate/${stone}`, [ @@ -1638,17 +1641,17 @@ const registerTFCRecipes = (event) => { // Булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_cobble_stairs` }) - generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 0, `tfc:rock/cobble/${stone}_stairs`, 100, 8, `${stone}_cobble_to_stairs`) + generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 0, [`tfc:rock/cobble/${stone}_stairs`, stoneDust], 100, 8, `${stone}_cobble_to_stairs`) // Булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_cobble_slab` }) - generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 1, `2x tfc:rock/cobble/${stone}_slab`, 100, 8, `${stone}_cobble_to_slab`) + generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 1, [`2x tfc:rock/cobble/${stone}_slab`, stoneDust], 100, 8, `${stone}_cobble_to_slab`) // Булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_cobble_wall` }) - generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 2, `tfc:rock/cobble/${stone}_wall`, 100, 8, `${stone}_cobble_to_wall`) + generateCutterRecipe(event, `tfc:rock/cobble/${stone}`, 2, [`tfc:rock/cobble/${stone}_wall`, stoneDust], 100, 8, `${stone}_cobble_to_wall`) //#endregion @@ -1673,17 +1676,17 @@ const registerTFCRecipes = (event) => { // Булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_smooth_stairs` }) - generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 0, `tfc:rock/smooth/${stone}_stairs`, 100, 8, `${stone}_smooth_to_stairs`) + generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 0, [`tfc:rock/smooth/${stone}_stairs`, stoneDust], 100, 8, `${stone}_smooth_to_stairs`) // Булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_smooth_slab` }) - generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 1, `2x tfc:rock/smooth/${stone}_slab`, 100, 8, `${stone}_smooth_to_slab`) + generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 1, [`2x tfc:rock/smooth/${stone}_slab`, stoneDust], 100, 8, `${stone}_smooth_to_slab`) // Булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_smooth_wall` }) - generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 2, `tfc:rock/smooth/${stone}_wall`, 100, 8, `${stone}_smooth_to_wall`) + generateCutterRecipe(event, `tfc:rock/smooth/${stone}`, 2, [`tfc:rock/smooth/${stone}_wall`, stoneDust], 100, 8, `${stone}_smooth_to_wall`) //#endregion @@ -1701,17 +1704,17 @@ const registerTFCRecipes = (event) => { // Блок кирпичей -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_bricks_stairs` }) - generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 0, `tfc:rock/bricks/${stone}_stairs`, 100, 8, `${stone}_bricks_to_stairs`) + generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 0, [`tfc:rock/bricks/${stone}_stairs`, stoneDust], 100, 8, `${stone}_bricks_to_stairs`) // Блок кирпичей -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_bricks_slab` }) - generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 1, `2x tfc:rock/bricks/${stone}_slab`, 100, 8, `${stone}_bricks_to_slab`) + generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 1, [`2x tfc:rock/bricks/${stone}_slab`, stoneDust], 100, 8, `${stone}_bricks_to_slab`) // Блок кирпичей -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_bricks_wall` }) - generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 2, `tfc:rock/bricks/${stone}_wall`, 100, 8, `${stone}_bricks_to_wall`) + generateCutterRecipe(event, `tfc:rock/bricks/${stone}`, 2, [`tfc:rock/bricks/${stone}_wall`, stoneDust], 100, 8, `${stone}_bricks_to_wall`) //#endregion @@ -1727,17 +1730,17 @@ const registerTFCRecipes = (event) => { // Потрескавшийся кирпич -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_stairs` }) - generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 0, `tfc:rock/cracked_bricks/${stone}_stairs`, 100, 8, `${stone}_cracked_bricks_to_stairs`) + generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 0, [`tfc:rock/cracked_bricks/${stone}_stairs`, stoneDust], 100, 8, `${stone}_cracked_bricks_to_stairs`) // Потрескавшийся кирпич -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_slab` }) - generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 1, `2x tfc:rock/cracked_bricks/${stone}_slab`, 100, 8, `${stone}_cracked_bricks_to_slab`) + generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 1, [`2x tfc:rock/cracked_bricks/${stone}_slab`, stoneDust], 100, 8, `${stone}_cracked_bricks_to_slab`) // Потрескавшийся кирпич -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_cracked_bricks_wall` }) - generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 2, `tfc:rock/cracked_bricks/${stone}_wall`, 100, 8, `${stone}_cracked_bricks_to_wall`) + generateCutterRecipe(event, `tfc:rock/cracked_bricks/${stone}`, 2, [`tfc:rock/cracked_bricks/${stone}_wall`, stoneDust], 100, 8, `${stone}_cracked_bricks_to_wall`) //#endregion @@ -1772,17 +1775,17 @@ const registerTFCRecipes = (event) => { // Замшелый булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_stairs` }) - generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 0, `tfc:rock/mossy_cobble/${stone}_stairs`, 100, 8, `${stone}_mossy_cobble_to_stairs`) + generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 0, [`tfc:rock/mossy_cobble/${stone}_stairs`, stoneDust], 100, 8, `${stone}_mossy_cobble_to_stairs`) //Замшелый булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_slab` }) - generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 1, `2x tfc:rock/mossy_cobble/${stone}_slab`, 100, 8, `${stone}_mossy_cobble_to_slab`) + generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 1, [`2x tfc:rock/mossy_cobble/${stone}_slab`, stoneDust], 100, 8, `${stone}_mossy_cobble_to_slab`) // Замшелый булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_mossy_cobble_wall` }) - generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 2, `tfc:rock/mossy_cobble/${stone}_wall`, 100, 8, `${stone}_mossy_cobble_to_wall`) + generateCutterRecipe(event, `tfc:rock/mossy_cobble/${stone}`, 2, [`tfc:rock/mossy_cobble/${stone}_wall`, stoneDust], 100, 8, `${stone}_mossy_cobble_to_wall`) //#endregion @@ -1800,17 +1803,17 @@ const registerTFCRecipes = (event) => { // Замшелый булыжник -> Ступени event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_stairs` }) - generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 0, `tfc:rock/mossy_bricks/${stone}_stairs`, 100, 8, `${stone}_mossy_bricks_to_stairs`) + generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 0, [`tfc:rock/mossy_bricks/${stone}_stairs`, stoneDust], 100, 8, `${stone}_mossy_bricks_to_stairs`) //Замшелый булыжник -> Плиты event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_slab` }) - generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 1, `2x tfc:rock/mossy_bricks/${stone}_slab`, 100, 8, `${stone}_mossy_bricks_to_slab`) + generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 1, [`2x tfc:rock/mossy_bricks/${stone}_slab`, stoneDust], 100, 8, `${stone}_mossy_bricks_to_slab`) // Замшелый булыжник -> Стена event.remove({ id: `tfc:crafting/rock/${stone}_mossy_bricks_wall` }) - generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 2, `tfc:rock/mossy_bricks/${stone}_wall`, 100, 8, `${stone}_mossy_bricks_to_wall`) + generateCutterRecipe(event, `tfc:rock/mossy_bricks/${stone}`, 2, [`tfc:rock/mossy_bricks/${stone}_wall`, stoneDust], 100, 8, `${stone}_mossy_bricks_to_wall`) //#endregion @@ -2165,54 +2168,72 @@ const registerTFCRecipes = (event) => { generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 4, `tfc:cut_sandstone/${sandColor}`, 100, 8, `cut_sandstone_${sandColor}_to_smooth_sandstone`) // Песчанник -> Ступень + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_stairs` }) + event.stonecutting(`tfc:raw_sandstone/${sandColor}_stairs`, `tfc:raw_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_sandstone_to_stairs`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 0, `tfc:raw_sandstone/${sandColor}_stairs`, 100, 8, `${sandColor}_sandstone_to_stairs`) // Песчанник -> Плита + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_slab` }) + event.stonecutting(`2x tfc:raw_sandstone/${sandColor}_slab`, `tfc:raw_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_sandstone_to_slabs`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 1, `2x tfc:raw_sandstone/${sandColor}_slab`, 100, 8, `${sandColor}_sandstone_to_slab`) // Песчанник -> Стена - event.stonecutting(`tfc:raw_sandstone/${sandColor}_stairs`, `tfc:raw_sandstone/${sandColor}`) + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_raw_wall` }) + + event.stonecutting(`tfc:raw_sandstone/${sandColor}_wall`, `tfc:raw_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_sandstone_to_wall`) generateCutterRecipe(event, `tfc:raw_sandstone/${sandColor}`, 2, `tfc:raw_sandstone/${sandColor}_wall`, 100, 8, `${sandColor}_sandstone_to_wall`) // Гладкий песчанник -> Ступень + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_stairs` }) + event.stonecutting(`tfc:smooth_sandstone/${sandColor}_stairs`, `tfc:smooth_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_stairs`) generateCutterRecipe(event, `tfc:smooth_sandstone/${sandColor}`, 0, `tfc:smooth_sandstone/${sandColor}_stairs`, 100, 8, `${sandColor}_smooth_sandstone_to_stairs`) // Гладкий песчанник -> Плита + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_slab` }) + event.stonecutting(`2x tfc:smooth_sandstone/${sandColor}_slab`, `tfc:smooth_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_slab`) generateCutterRecipe(event, `tfc:smooth_sandstone/${sandColor}`, 1, `2x tfc:smooth_sandstone/${sandColor}_slab`, 100, 8, `${sandColor}_smooth_sandstone_to_slab`) // Гладкий песчанник -> Стена + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_smooth_wall` }) + event.stonecutting(`tfc:smooth_sandstone/${sandColor}_wall`, `tfc:smooth_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_smooth_sandstone_to_wall`) generateCutterRecipe(event, `tfc:smooth_sandstone/${sandColor}`, 2, `tfc:smooth_sandstone/${sandColor}_wall`, 100, 8, `${sandColor}_smooth_sandstone_to_wall`) // Обрезанный песчанник -> Ступень + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_stairs` }) + event.stonecutting(`tfc:cut_sandstone/${sandColor}_stairs`, `tfc:cut_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_stairs`) generateCutterRecipe(event, `tfc:cut_sandstone/${sandColor}`, 0, `tfc:cut_sandstone/${sandColor}_stairs`, 100, 8, `${sandColor}_cut_sandstone_to_stairs`) // Обрезанный песчанник -> Плита + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_slab` }) + event.stonecutting(`2x tfc:cut_sandstone/${sandColor}_slab`, `tfc:cut_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_slab`) generateCutterRecipe(event, `tfc:cut_sandstone/${sandColor}`, 1, `2x tfc:cut_sandstone/${sandColor}_slab`, 100, 8, `${sandColor}_cut_sandstone_to_slab`) // Обрезанный песчанник -> Стена + event.remove({ id: `tfc:crafting/sandstone/${sandColor}_cut_wall` }) + event.stonecutting(`tfc:cut_sandstone/${sandColor}_wall`, `tfc:cut_sandstone/${sandColor}`) .id(`tfg:stonecutting/${sandColor}_cut_sandstone_to_wall`) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index 19d6e3475..409d3e8aa 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -897,3 +897,16 @@ global.MINECRAFT_DYE_NAMES = [ 'red', 'black' ]; + +global.MINECRAFT_COPPER_BLOCKS_RECIPE_COMPONENTS = [ + // Default + { block: 'minecraft:copper_block', cutted: 'minecraft:cut_copper', stairs: 'minecraft:cut_copper_stairs', slabs: 'minecraft:cut_copper_slab', name: 'copper' }, + { block: 'minecraft:exposed_copper', cutted: 'minecraft:exposed_cut_copper', stairs: 'minecraft:exposed_cut_copper_stairs', slabs: 'minecraft:exposed_cut_copper_slab', name: 'exposed_copper' }, + { block: 'minecraft:weathered_copper', cutted: 'minecraft:weathered_cut_copper', stairs: 'minecraft:weathered_cut_copper_stairs', slabs: 'minecraft:weathered_cut_copper_slab', name: 'weathered_copper' }, + { block: 'minecraft:oxidized_copper', cutted: 'minecraft:oxidized_cut_copper', stairs: 'minecraft:oxidized_cut_copper_stairs', slabs: 'minecraft:oxidized_cut_copper_slab', name: 'oxidized_copper' }, + // Waxed + { block: 'minecraft:waxed_copper_block', cutted: 'minecraft:waxed_cut_copper', stairs: 'minecraft:waxed_cut_copper_stairs', slabs: 'minecraft:waxed_cut_copper_slab', name: 'waxed_copper' }, + { block: 'minecraft:waxed_exposed_copper', cutted: 'minecraft:waxed_exposed_cut_copper', stairs: 'minecraft:waxed_exposed_cut_copper_stairs', slabs: 'minecraft:waxed_exposed_cut_copper_slab', name: 'waxed_exposed_copper' }, + { block: 'minecraft:waxed_weathered_copper', cutted: 'minecraft:waxed_weathered_cut_copper', stairs: 'minecraft:waxed_weathered_cut_copper_stairs', slabs: 'minecraft:waxed_weathered_cut_copper_slab', name: 'waxed_weathered_copper' }, + { block: 'minecraft:waxed_oxidized_copper', cutted: 'minecraft:waxed_oxidized_cut_copper', stairs: 'minecraft:waxed_oxidized_cut_copper_stairs', slabs: 'minecraft:waxed_oxidized_cut_copper_slab', name: 'waxed_oxidized_copper' } +];