From b3cd93b68463c56354d6dd013f4f95344de72f5b Mon Sep 17 00:00:00 2001 From: KonSola5 <125081901+KonSola5@users.noreply.github.com> Date: Sat, 17 May 2025 22:34:21 +0200 Subject: [PATCH] New Stone Growth Chambers and item tags for units --- .../ponders/stone_growth_chamber.js | 12 +-- .../building_blocks/basalt.json | 4 + .../building_blocks/limestone.json | 9 ++ .../building_blocks/scoria.json | 9 ++ .../tags/items/storage_unit_0.json | 5 ++ .../tags/items/storage_unit_1.json | 6 ++ .../tags/items/storage_unit_2.json | 7 ++ .../tags/items/storage_unit_3.json | 8 ++ .../tags/items/storage_unit_4.json | 9 ++ .../tags/items/storage_unit_5.json | 10 +++ .../createastral/tags/items/tank_unit_0.json | 5 ++ .../createastral/tags/items/tank_unit_1.json | 6 ++ .../createastral/tags/items/tank_unit_2.json | 7 ++ .../createastral/tags/items/tank_unit_3.json | 8 ++ .../createastral/tags/items/tank_unit_4.json | 9 ++ .../machines/stone_growth_chamber/copper.js | 89 ++++++++++++++++++- .../recipes/minecraft/shaped.js | 2 +- .../recipes/minecraft/smithing.js | 2 - 18 files changed, 195 insertions(+), 12 deletions(-) create mode 100644 kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/basalt.json create mode 100644 kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/limestone.json create mode 100644 kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/scoria.json create mode 100644 kubejs/data/createastral/tags/items/storage_unit_0.json create mode 100644 kubejs/data/createastral/tags/items/storage_unit_1.json create mode 100644 kubejs/data/createastral/tags/items/storage_unit_2.json create mode 100644 kubejs/data/createastral/tags/items/storage_unit_3.json create mode 100644 kubejs/data/createastral/tags/items/storage_unit_4.json create mode 100644 kubejs/data/createastral/tags/items/storage_unit_5.json create mode 100644 kubejs/data/createastral/tags/items/tank_unit_0.json create mode 100644 kubejs/data/createastral/tags/items/tank_unit_1.json create mode 100644 kubejs/data/createastral/tags/items/tank_unit_2.json create mode 100644 kubejs/data/createastral/tags/items/tank_unit_3.json create mode 100644 kubejs/data/createastral/tags/items/tank_unit_4.json diff --git a/kubejs/client_scripts/ponders/stone_growth_chamber.js b/kubejs/client_scripts/ponders/stone_growth_chamber.js index 79a717479..a4e9bff21 100644 --- a/kubejs/client_scripts/ponders/stone_growth_chamber.js +++ b/kubejs/client_scripts/ponders/stone_growth_chamber.js @@ -45,8 +45,8 @@ scene.idle(1); scene.text(30, "Glass", [1.5, 3, 2.5]); scene.idle(40); - scene.world.setBlocks([2, 2, 2], "minecraft:lava", true); - scene.text(30, "Lava in the middle", [2.5, 3, 2.5]); + scene.world.setBlocks([2, 2, 2], "minecraft:water", true); + scene.text(30, "Water in the middle", [2.5, 3, 2.5]); scene.idle(40); scene.world.setBlocks([1, 3, 3], "create:cut_andesite", true); scene.idle(1); @@ -108,7 +108,7 @@ scene.idle(70); scene.text( 90, - "This currently works with Stone, Andesite and any default stone from each planet, like Moon Stone and Mars Stone", + "This currently works with Stone, Andesite, Limestone, Scoria, Basalt and any default stone from each planet, like Moon Stone and Mars Stone", [3, 2.5, 3] ); scene.idle(100); @@ -218,13 +218,13 @@ scene.world.setBlocks([1, 3, 1, 3, 3, 3], "minecraft:air", false); scene.idle(30); scene.world.setBlocks([1, 2, 1, 3, 2, 3], "minecraft:tinted_glass", true); - scene.world.setBlock([2, 2, 2], "minecraft:lava", false); + scene.world.setBlock([2, 2, 2], "minecraft:water", false); scene.idle(30); scene.world.setBlocks([1, 2, 1, 3, 2, 3], "tconstruct:gray_clear_stained_glass", true); - scene.world.setBlock([2, 2, 2], "minecraft:lava", false); + scene.world.setBlock([2, 2, 2], "minecraft:water", false); scene.idle(30); scene.world.setBlocks([1, 2, 1, 3, 2, 3], "chipped:glass_48", true); - scene.world.setBlock([2, 2, 2], "minecraft:lava", false); + scene.world.setBlock([2, 2, 2], "minecraft:water", false); scene.idle(30); scene.world.setBlocks([1, 3, 1, 3, 3, 3], "create:small_andesite_bricks", true); }); diff --git a/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/basalt.json b/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/basalt.json new file mode 100644 index 000000000..e77e2dfe4 --- /dev/null +++ b/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/basalt.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": ["minecraft:polished_basalt", "chipped:basalt_15"] +} diff --git a/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/limestone.json b/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/limestone.json new file mode 100644 index 000000000..dafbadfe2 --- /dev/null +++ b/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/limestone.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "create:cut_limestone", + "create:polished_cut_limestone", + "create:cut_limestone_bricks", + "create:small_limestone_bricks" + ] +} diff --git a/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/scoria.json b/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/scoria.json new file mode 100644 index 000000000..9b4ed2af7 --- /dev/null +++ b/kubejs/data/createastral/tags/blocks/stone_growth_chamber/building_blocks/scoria.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "create:cut_scoria", + "create:polished_cut_scoria", + "create:cut_scoria_bricks", + "create:small_scoria_bricks" + ] +} diff --git a/kubejs/data/createastral/tags/items/storage_unit_0.json b/kubejs/data/createastral/tags/items/storage_unit_0.json new file mode 100644 index 000000000..5cca5e0a0 --- /dev/null +++ b/kubejs/data/createastral/tags/items/storage_unit_0.json @@ -0,0 +1,5 @@ +{ + "values": [ + "techreborn:storage_buffer" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/storage_unit_1.json b/kubejs/data/createastral/tags/items/storage_unit_1.json new file mode 100644 index 000000000..5b4476c9b --- /dev/null +++ b/kubejs/data/createastral/tags/items/storage_unit_1.json @@ -0,0 +1,6 @@ +{ + "values": [ + "techreborn:storage_buffer", + "techreborn:crude_storage_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/storage_unit_2.json b/kubejs/data/createastral/tags/items/storage_unit_2.json new file mode 100644 index 000000000..b6dcd2a2d --- /dev/null +++ b/kubejs/data/createastral/tags/items/storage_unit_2.json @@ -0,0 +1,7 @@ +{ + "values": [ + "techreborn:storage_buffer", + "techreborn:crude_storage_unit", + "techreborn:basic_storage_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/storage_unit_3.json b/kubejs/data/createastral/tags/items/storage_unit_3.json new file mode 100644 index 000000000..52899bc19 --- /dev/null +++ b/kubejs/data/createastral/tags/items/storage_unit_3.json @@ -0,0 +1,8 @@ +{ + "values": [ + "techreborn:storage_buffer", + "techreborn:crude_storage_unit", + "techreborn:basic_storage_unit", + "techreborn:advanced_storage_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/storage_unit_4.json b/kubejs/data/createastral/tags/items/storage_unit_4.json new file mode 100644 index 000000000..f8388a3af --- /dev/null +++ b/kubejs/data/createastral/tags/items/storage_unit_4.json @@ -0,0 +1,9 @@ +{ + "values": [ + "techreborn:storage_buffer", + "techreborn:crude_storage_unit", + "techreborn:basic_storage_unit", + "techreborn:advanced_storage_unit", + "techreborn:industrial_storage_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/storage_unit_5.json b/kubejs/data/createastral/tags/items/storage_unit_5.json new file mode 100644 index 000000000..6753feb2f --- /dev/null +++ b/kubejs/data/createastral/tags/items/storage_unit_5.json @@ -0,0 +1,10 @@ +{ + "values": [ + "techreborn:storage_buffer", + "techreborn:crude_storage_unit", + "techreborn:basic_storage_unit", + "techreborn:advanced_storage_unit", + "techreborn:industrial_storage_unit", + "techreborn:quantum_storage_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/tank_unit_0.json b/kubejs/data/createastral/tags/items/tank_unit_0.json new file mode 100644 index 000000000..57da152e8 --- /dev/null +++ b/kubejs/data/createastral/tags/items/tank_unit_0.json @@ -0,0 +1,5 @@ +{ + "values": [ + "create:fluid_tank" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/tank_unit_1.json b/kubejs/data/createastral/tags/items/tank_unit_1.json new file mode 100644 index 000000000..38be17b7b --- /dev/null +++ b/kubejs/data/createastral/tags/items/tank_unit_1.json @@ -0,0 +1,6 @@ +{ + "values": [ + "create:fluid_tank", + "techreborn:basic_tank_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/tank_unit_2.json b/kubejs/data/createastral/tags/items/tank_unit_2.json new file mode 100644 index 000000000..133c61d3c --- /dev/null +++ b/kubejs/data/createastral/tags/items/tank_unit_2.json @@ -0,0 +1,7 @@ +{ + "values": [ + "create:fluid_tank", + "techreborn:basic_tank_unit", + "techreborn:advanced_tank_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/tank_unit_3.json b/kubejs/data/createastral/tags/items/tank_unit_3.json new file mode 100644 index 000000000..57c0827c2 --- /dev/null +++ b/kubejs/data/createastral/tags/items/tank_unit_3.json @@ -0,0 +1,8 @@ +{ + "values": [ + "create:fluid_tank", + "techreborn:basic_tank_unit", + "techreborn:advanced_tank_unit", + "techreborn:industrial_tank_unit" + ] +} \ No newline at end of file diff --git a/kubejs/data/createastral/tags/items/tank_unit_4.json b/kubejs/data/createastral/tags/items/tank_unit_4.json new file mode 100644 index 000000000..82f9149e9 --- /dev/null +++ b/kubejs/data/createastral/tags/items/tank_unit_4.json @@ -0,0 +1,9 @@ +{ + "values": [ + "create:fluid_tank", + "techreborn:basic_tank_unit", + "techreborn:advanced_tank_unit", + "techreborn:industrial_tank_unit", + "techreborn:quantum_tank_unit" + ] +} \ No newline at end of file diff --git a/kubejs/server_scripts/recipes/createastral/machines/stone_growth_chamber/copper.js b/kubejs/server_scripts/recipes/createastral/machines/stone_growth_chamber/copper.js index 2a2f8a83d..fb1c59cc3 100644 --- a/kubejs/server_scripts/recipes/createastral/machines/stone_growth_chamber/copper.js +++ b/kubejs/server_scripts/recipes/createastral/machines/stone_growth_chamber/copper.js @@ -1,53 +1,89 @@ (function stoneGrowthChamberRecipes() { onEvent("recipes", (event) => { - const newCopperSGCStructure = /** @type {const} */ ([ + const legacyStoneGrowthChamberStructure = /** @type {const} */ ([ ["aaa", "aaa", "ama"], ["ggg", "glg", "ggg"], ["aaa", "aaa", "aaa"], ]); + const stoneGrowthChamberStructure = /** @type {const} */ ([ + ["aaa", "aaa", "ama"], + ["ggg", "gwg", "ggg"], + ["aaa", "aaa", "aaa"], + ]); + /** * @typedef StoneGrowthChamberRecipe * @property {string} material * @property {Special.Item} output + * @property {Special.Block} blockToReact * @property {number} time */ /** @satisfies {StoneGrowthChamberRecipe[]} */ - const stoneGrowthChamberRecipes = /** @type {const} */([ + const stoneGrowthChamberRecipes = /** @type {const} */ ([ { material: "andesite", output: "minecraft:andesite", + blockToReact: "minecraft:water", time: 10, }, { material: "cobblestone", output: "minecraft:cobblestone", + blockToReact: "minecraft:water", time: 10, }, { material: "glacio_cobblestone", output: "ad_astra:glacio_cobblestone", + blockToReact: "minecraft:water", time: 10, }, { material: "mars_cobblestone", output: "ad_astra:mars_cobblestone", + blockToReact: "minecraft:water", time: 10, }, { material: "mercury_cobblestone", output: "ad_astra:mercury_cobblestone", + blockToReact: "minecraft:water", time: 10, }, { material: "moon_cobblestone", output: "ad_astra:moon_cobblestone", + blockToReact: "minecraft:water", time: 10, }, { material: "venus_cobblestone", output: "ad_astra:venus_cobblestone", + blockToReact: "minecraft:water", + time: 10, + }, + ]); + + /** @satisfies {StoneGrowthChamberRecipe[]} */ + const newStoneGrowthChamberRecipes = /** @type {const} */ ([ + { + material: "limestone", + output: "create:limestone", + blockToReact: "create:honey", + time: 10, + }, + { + material: "scoria", + output: "create:scoria", + blockToReact: "create:chocolate", + time: 10, + }, + { + material: "basalt", + output: "minecraft:basalt", + blockToReact: "minecraft:blue_ice", time: 10, }, ]); @@ -64,7 +100,54 @@ l: "minecraft:lava", g: "createastral:stone_growth_chamber/glass_blocks", }, - pattern: newCopperSGCStructure, + pattern: legacyStoneGrowthChamberStructure, + }, + { + type: "custommachinery:item", + item: recipe.output, + amount: 1, + mode: "output", + }, + ], + }); + event.custom({ + type: "custommachinery:custom_machine", + machine: "createastral:stone_growth_chamber", + time: recipe.time, + requirements: [ + { + type: "custommachinery:structure", + keys: { + a: `createastral:stone_growth_chamber/building_blocks/${recipe.material}`, + w: recipe.blockToReact, + g: "createastral:stone_growth_chamber/glass_blocks", + }, + pattern: stoneGrowthChamberStructure, + }, + { + type: "custommachinery:item", + item: recipe.output, + amount: 1, + mode: "output", + }, + ], + }); + }); + + newStoneGrowthChamberRecipes.forEach((recipe) => { + event.custom({ + type: "custommachinery:custom_machine", + machine: "createastral:stone_growth_chamber", + time: recipe.time, + requirements: [ + { + type: "custommachinery:structure", + keys: { + a: `createastral:stone_growth_chamber/building_blocks/${recipe.material}`, + w: recipe.blockToReact, + g: "createastral:stone_growth_chamber/glass_blocks", + }, + pattern: stoneGrowthChamberStructure, }, { type: "custommachinery:item", diff --git a/kubejs/server_scripts/recipes/minecraft/shaped.js b/kubejs/server_scripts/recipes/minecraft/shaped.js index 7d99c7ef9..a9df3b243 100644 --- a/kubejs/server_scripts/recipes/minecraft/shaped.js +++ b/kubejs/server_scripts/recipes/minecraft/shaped.js @@ -909,7 +909,7 @@ pattern: ["CCC", "DED", "CCC"], key: { D: "create:copper_sheet", - E: "minecraft:water_bucket", + E: "minecraft:lava_bucket", C: "create:copper_casing", }, }, diff --git a/kubejs/server_scripts/recipes/minecraft/smithing.js b/kubejs/server_scripts/recipes/minecraft/smithing.js index fd9401653..096f3975a 100644 --- a/kubejs/server_scripts/recipes/minecraft/smithing.js +++ b/kubejs/server_scripts/recipes/minecraft/smithing.js @@ -44,13 +44,11 @@ storageUnits.forEach((unit) => { event.smithing( `techreborn:${unit.prefix}_storage_unit`, - // @ts-expect-error These are block tags, how does that even work??? `#createastral:storage_unit_${unit.index}`, `createastral:t${unit.tier}_upgrade` ); event.smithing( `techreborn:${unit.prefix}_tank_unit`, - // @ts-expect-error These are block tags, how does that even work??? `#createastral:tank_unit_${unit.index}`, `createastral:t${unit.tier}_upgrade` );