From 6af1ba9911628eef3e9106bfea305e8d65d9ba10 Mon Sep 17 00:00:00 2001 From: Nik-Was Date: Thu, 21 Aug 2025 16:26:47 +0300 Subject: [PATCH 1/5] Added craftable and wrenchable Cogwheel Skull block --- .../models/block/cogwheel_skull.json | 175 ++++++++++++++++++ .../create/tags/blocks/wrench_pickup.json | 1 + .../recipes/minecraft/shaped.js | 9 + .../registry/createastral/block.js | 23 +++ 4 files changed, 208 insertions(+) create mode 100644 kubejs/assets/createastral/models/block/cogwheel_skull.json diff --git a/kubejs/assets/createastral/models/block/cogwheel_skull.json b/kubejs/assets/createastral/models/block/cogwheel_skull.json new file mode 100644 index 000000000..6c325e4f3 --- /dev/null +++ b/kubejs/assets/createastral/models/block/cogwheel_skull.json @@ -0,0 +1,175 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 32], + "textures": { + "0": "create:block/cogwheel_axis", + "1": "minecraft:entity/skeleton/skeleton", + "3": "create:block/axis_top", + "1_2": "create:block/cogwheel", + "particle": "createastral:block/bronze_block" + }, + "elements": [ + { + "name": "Axis", + "from": [6, 2, 6], + "to": [10, 10, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [6, 0, 10, 16], "texture": "#0"}, + "east": {"uv": [6, 0, 10, 16], "texture": "#0"}, + "south": {"uv": [6, 0, 10, 16], "texture": "#0"}, + "west": {"uv": [6, 0, 10, 16], "texture": "#0"}, + "up": {"uv": [6, 6, 10, 10], "texture": "#3"}, + "down": {"uv": [6, 6, 10, 10], "texture": "#3"} + } + }, + { + "name": "Gear", + "from": [-1, 0.5, 6.5], + "to": [17, 3.5, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -6, 0]}, + "faces": { + "north": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "east": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "south": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "west": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "up": {"uv": [7, 6, 16, 7.5], "texture": "#1_2"}, + "down": {"uv": [7, 6, 16, 7.5], "texture": "#1_2"} + } + }, + { + "name": "Gear2", + "from": [-1, 0.5, 6.5], + "to": [17, 3.5, 9.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "east": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "south": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "west": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "up": {"uv": [7, 6, 16, 7.5], "texture": "#1_2"}, + "down": {"uv": [7, 6, 16, 7.5], "texture": "#1_2"} + } + }, + { + "name": "Gear3", + "from": [-1, 0.5, 6.5], + "to": [17, 3.5, 9.5], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "east": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "south": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "west": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "up": {"uv": [7, 6, 16, 7.5], "texture": "#1_2"}, + "down": {"uv": [7, 6, 16, 7.5], "texture": "#1_2"} + } + }, + { + "name": "Gear4", + "from": [6.5, 0.5, -1], + "to": [9.5, 3.5, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -6, 0]}, + "faces": { + "north": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "east": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "south": {"uv": [5, 8, 6.5, 9.5], "texture": "#1_2"}, + "west": {"uv": [7, 8, 16, 9.5], "texture": "#1_2"}, + "up": {"uv": [7, 6, 16, 7.5], "rotation": 90, "texture": "#1_2"}, + "down": {"uv": [7, 6, 16, 7.5], "rotation": 90, "texture": "#1_2"} + } + }, + { + "name": "GearCaseInner", + "from": [2, 0.55, 2], + "to": [14, 3.45, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -6, 0]}, + "faces": { + "north": {"uv": [0, 6, 6, 7.5], "texture": "#1_2"}, + "east": {"uv": [0, 6, 6, 7.5], "texture": "#1_2"}, + "south": {"uv": [0, 6, 6, 7.5], "texture": "#1_2"}, + "west": {"uv": [0, 6, 6, 7.5], "texture": "#1_2"}, + "up": {"uv": [4, 0, 10, 6], "texture": "#1_2"}, + "down": {"uv": [4, 0, 10, 6], "texture": "#1_2"} + } + }, + { + "name": "GearCaseOuter", + "from": [4, 0, 4], + "to": [12, 4, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -6, 0]}, + "faces": { + "north": {"uv": [0, 4, 4, 6], "texture": "#1_2"}, + "east": {"uv": [0, 4, 4, 6], "texture": "#1_2"}, + "south": {"uv": [0, 4, 4, 6], "texture": "#1_2"}, + "west": {"uv": [0, 4, 4, 6], "texture": "#1_2"}, + "up": {"uv": [0, 0, 4, 4], "texture": "#1_2"}, + "down": {"uv": [10, 0, 14, 4], "texture": "#1_2"} + } + }, + { + "name": "Skull", + "from": [4, 6, 4], + "to": [12, 14, 12], + "faces": { + "north": {"uv": [2, 4, 4, 8], "texture": "#1"}, + "east": {"uv": [0, 4, 2, 8], "texture": "#1"}, + "south": {"uv": [6, 4, 8, 8], "texture": "#1"}, + "west": {"uv": [4, 4, 6, 8], "texture": "#1"}, + "up": {"uv": [4, 4, 2, 0], "texture": "#1"}, + "down": {"uv": [6, 0, 4, 4], "texture": "#1"} + } + }, + { + "name": "InsideSkull", + "from": [12, 14, 12], + "to": [4, 6, 4], + "faces": { + "north": {"uv": [6, 8, 8, 4], "texture": "#1"}, + "east": {"uv": [4, 8, 6, 4], "texture": "#1"}, + "south": {"uv": [2, 8, 4, 4], "texture": "#1"}, + "west": {"uv": [0, 8, 2, 4], "texture": "#1"}, + "up": {"uv": [6, 0, 4, 4], "rotation": 180, "texture": "#1"}, + "down": {"uv": [4, 0, 2, 4], "rotation": 180, "texture": "#1"} + } + } + ], + "display": { + "firstperson_righthand": { + "rotation": [0, 180, 0] + }, + "thirdperson_righthand": { + "rotation": [45, 45, 0], + "translation": [0, 3, 0], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.5, 0.5, 0.5] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 2, 0], + "scale": [0.75, 0.75, 0.75] + }, + "fixed": { + "rotation": [0, 0, 0], + "translation": [0, 2, 0], + "scale": [0.75, 0.75, 0.75] + } + }, + "groups": [ + { + "name": "cogwheel", + "origin": [8, 8, 8], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6] + }, + { + "name": "skull", + "origin": [0, 0, 0], + "color": 0, + "children": [7, 8] + } + ] +} \ No newline at end of file diff --git a/kubejs/data/create/tags/blocks/wrench_pickup.json b/kubejs/data/create/tags/blocks/wrench_pickup.json index 71fa14bfc..7bd97cc0e 100644 --- a/kubejs/data/create/tags/blocks/wrench_pickup.json +++ b/kubejs/data/create/tags/blocks/wrench_pickup.json @@ -27,6 +27,7 @@ "createbigcannons:nethersteel_screw_breech", "createbigcannons:incomplete_steel_screw_breech", "createbigcannons:incomplete_nethersteel_screw_breech", + "createastral:cogwheel_skull", "createastral:rocket_casing", "kubejs:fragile_sheet_block", "kubejs:fire_resistant_fragile_sheet_block", diff --git a/kubejs/server_scripts/recipes/minecraft/shaped.js b/kubejs/server_scripts/recipes/minecraft/shaped.js index 66fed5da9..7eb27c7de 100644 --- a/kubejs/server_scripts/recipes/minecraft/shaped.js +++ b/kubejs/server_scripts/recipes/minecraft/shaped.js @@ -585,6 +585,15 @@ B: "createastral:bronze_sheet", }, }, + { + output: "createastral:cogwheel_skull", + pattern: ["A", "B", "C"], + key: { + A: "minecraft:skeleton_skull", + B: "minecraft:clock", + C: "create:cogwheel", + }, + }, { output: "yttr:wasteland_dirt", pattern: ["ABA"], diff --git a/kubejs/startup_scripts/registry/createastral/block.js b/kubejs/startup_scripts/registry/createastral/block.js index 41fcebd3f..30950eb7d 100644 --- a/kubejs/startup_scripts/registry/createastral/block.js +++ b/kubejs/startup_scripts/registry/createastral/block.js @@ -208,5 +208,28 @@ .textureAll("createastral:block/gas_mixer") .texture("down", "createastral:block/gas_mixer_shaft"); event.create("createastral:channeling_transformer_dummy").textureAll("createastral:block/channeling_transformer"); + event + .create("createastral:cogwheel_skull") + .material("lantern") + .hardness(2) + .box(4, 0, 4, 12, 14, 12, true) + .box(2, 0, 2, 14, 3, 14, true) + .tagBlock("minecraft:mineable/pickaxe") + .requiresTool(true) + .property(BlockProperties.HORIZONTAL_FACING) + .placementState(event => + event.set( + BlockProperties.HORIZONTAL_FACING, + `${event.getHorizontalDirection().getOpposite()}` + ) + ) + .blockstateJson = { + "variants": { + "facing=north": { "model": "createastral:block/cogwheel_skull" }, + "facing=east" : { "model": "createastral:block/cogwheel_skull", "y": 90 }, + "facing=south": { "model": "createastral:block/cogwheel_skull", "y": 180 }, + "facing=west" : { "model": "createastral:block/cogwheel_skull", "y": 270 }, + } + }; }); })(); From cc22c3c81bb6fdb0f73e6765f8acf15f1249f5f5 Mon Sep 17 00:00:00 2001 From: Nik-Was Date: Thu, 21 Aug 2025 20:12:55 +0300 Subject: [PATCH 2/5] Added Cogwheel Skull as a Potato Cannon projectile with a "time stop" effect --- kubejs/server_scripts/misc/interaction.js | 60 +++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/kubejs/server_scripts/misc/interaction.js b/kubejs/server_scripts/misc/interaction.js index d42ffa13a..af01383f4 100644 --- a/kubejs/server_scripts/misc/interaction.js +++ b/kubejs/server_scripts/misc/interaction.js @@ -209,6 +209,66 @@ ], }, }, + { + projectile: { item: "createastral:cogwheel_skull" }, + createAutoJson: { + fileName: "cogwheel_skull", + reloadTicks: 60, + damage: 5, + knockback: 0, + drag: 1, + velocityMultiplier: 0.5, + gravityMultiplier: 0.5, + sticky: false, + soundPitch: 0.5, + }, + particles: { + enabled: true, + spread: 3, + size: 150, + speed: 1, + count: 50, + type: "ae2:matter_cannon_fx", + hasColor: false, + color: [0.31, 0.7, 0], + }, + explosion: { + enabled: false, + }, + AOE: { + enabled: true, + effectList: [ + { + potionEffect: "minecraft:slowness", + potionTime: 5, + potionAmplifier: 100, + potionHideParticles: true, + range: "7", + }, + { + potionEffect: "minecraft:mining_fatigue", + potionTime: 5, + potionAmplifier: 100, + potionHideParticles: true, + range: "7", + }, + { + potionEffect: "minecraft:weakness", + potionTime: 5, + potionAmplifier: 100, + potionHideParticles: true, + range: "7", + }, + { + potionEffect: "minecraft:jump_boost", + potionTime: 5, + potionAmplifier: 200, + potionHideParticles: true, + range: "7", + }, + ], + }, + }, { projectile: { item: "createbigcannons:autocannon_cartridge" }, particles: { From ce5c73152f997f4130ac27550f47a20c507e9306 Mon Sep 17 00:00:00 2001 From: Nik-Was Date: Sun, 24 Aug 2025 23:01:31 +0300 Subject: [PATCH 3/5] Made cogwheel skull also breakable with axe, like regular cogwheels Removed redundant line in the ammo definition Added a tooltip along with the name to lang file Additionally unified all names for "Blast-Resistant" and "Fire-Resistant" blocks into one format --- kubejs/assets/createastral/lang/en_us.json | 14 ++++++++------ kubejs/server_scripts/misc/interaction.js | 1 - .../startup_scripts/registry/createastral/block.js | 10 +++++++--- kubejs/startup_scripts/registry/kubejs/block.js | 4 ++-- kubejs/startup_scripts/tooltip/createastral.js | 1 + 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/kubejs/assets/createastral/lang/en_us.json b/kubejs/assets/createastral/lang/en_us.json index 9cef0cca1..53186ce0d 100644 --- a/kubejs/assets/createastral/lang/en_us.json +++ b/kubejs/assets/createastral/lang/en_us.json @@ -68,6 +68,7 @@ "tooltip.createastral.orcane.2": "A major change you *might* want to be aware of. The Nether does not exist. Do not even try to make the portal as it will not function. All Nether related items are distributed throughout the pack (mostly planets)", "tooltip.createastral.bronze_block": "Texture courtesy of Create: Alloyed.", "tooltip.createastral.seitan": "MEAT - Multipurpose, Ethical And True", + "tooltip.createastral.cogwheel_skull": "Timestop I", "tooltip.astraladditions.fragile_item": "Breaks when held in player inventories, it must be moved with logistical methods!", @@ -356,8 +357,8 @@ "block.kubejs.fragile_sheet_block": "Fragile Sheet Block", "block.kubejs.broken_fragile_sheet_block": "Broken Fragile Sheet Block", - "block.kubejs.fire_resistant_fragile_sheet_block": "Fire Resistant Fragile Sheet Block", - "block.kubejs.broken_fire_resistant_fragile_sheet_block": "Broken Fire Resistant Fragile Sheet Block", + "block.kubejs.fire_resistant_fragile_sheet_block": "Fire-Resistant Fragile Sheet Block", + "block.kubejs.broken_fire_resistant_fragile_sheet_block": "Broken Fire-Resistant Fragile Sheet Block", "block.astralsignals.signal_coordinator_dummy": "Signal Coordinator Dummy", "block.astralsignals.radio_telescope_dummy": "Radio Telescope Dummy", @@ -380,9 +381,9 @@ "block.createastral.bronze_block": "Bronze Block", "block.createastral.copper_heating_coil": "Copper Coil Block", - "block.createastral.blast-resistant_concrete": "Blast Resistant Concrete", - "block.createastral.blast-resistant_concrete_slab": "Blast Resistant Concrete Slab", - "block.createastral.blast-resistant_concrete_stairs": "Blast Resistant Concrete Stairs", + "block.createastral.blast-resistant_concrete": "Blast-Resistant Concrete", + "block.createastral.blast-resistant_concrete_slab": "Blast-Resistant Concrete Slab", + "block.createastral.blast-resistant_concrete_stairs": "Blast-Resistant Concrete Stairs", "block.createastral.distillery_dummy": "Distillery Dummy", "block.createastral.electrolyser_dummy": "Electrolyzer Dummy", @@ -401,6 +402,7 @@ "block.createastral.swift_andesite": "Swift Andesite", "block.createastral.rocket_casing": "Rocket Casing", "block.createastral.moonset_stone": "Moonset Stone", + "block.createastral.cogwheel_skull": "Cogwheel Skull", "item.astralfoods.ambrosia": "Ambrosia", "item.astralfoods.chocolate_ice_cream": "Chocolate Ice Cream", @@ -2437,7 +2439,7 @@ "ftbquests.chapter.chapter_4.quests95.description3": "Steel will have a lot more relevance in Chapter 4. For now, it's vital for getting there in the first place.", "ftbquests.chapter.chapter_4.quests96.title": "Blast-Resistant Cement", "ftbquests.chapter.chapter_4.quests96.subtitle": "This doesn't make the bucket blast resistant, just the cement in it.", - "ftbquests.chapter.chapter_4.quests96.description0": "To make blast-resistant Cement, Steel and Lime Dust needs to be mixed together with Concrete Powder.", + "ftbquests.chapter.chapter_4.quests96.description0": "To make Blast-Resistant Cement, Steel and Lime Dust needs to be mixed together with Concrete Powder.", "ftbquests.chapter.chapter_4.quests96.description3": "Clay Dust for the Concrete Powder can be obtained by crushing Limestone, or crushing Clay. The material is too soft for the Grinder to work.", "ftbquests.chapter.chapter_4.quests97.subtitle": "More useful then you might realize!", "ftbquests.chapter.chapter_4.quests97.description0": "Lastly, all you need to do is pour the Cement into a Casting Basin.", diff --git a/kubejs/server_scripts/misc/interaction.js b/kubejs/server_scripts/misc/interaction.js index af01383f4..4f95857b0 100644 --- a/kubejs/server_scripts/misc/interaction.js +++ b/kubejs/server_scripts/misc/interaction.js @@ -230,7 +230,6 @@ count: 50, type: "ae2:matter_cannon_fx", hasColor: false, - color: [0.31, 0.7, 0], }, explosion: { enabled: false, diff --git a/kubejs/startup_scripts/registry/createastral/block.js b/kubejs/startup_scripts/registry/createastral/block.js index 30950eb7d..54929226e 100644 --- a/kubejs/startup_scripts/registry/createastral/block.js +++ b/kubejs/startup_scripts/registry/createastral/block.js @@ -91,7 +91,8 @@ .textureAll("createastral:block/blast_side") .texture("up", "createastral:block/blast_top") .texture("down", "createastral:block/blast_top") - .tagBlock("minecraft:mineable/pickaxe"); + .tagBlock("minecraft:mineable/pickaxe") + .displayName("Blast-Resistant Concrete"); event .create("createastral:blast-resistant_concrete_slab", "slab") .material("stone") @@ -100,7 +101,8 @@ .textureAll("createastral:block/blast_side") .texture("up", "createastral:block/blast_top") .texture("down", "createastral:block/blast_top") - .tagBlock("minecraft:mineable/pickaxe"); + .tagBlock("minecraft:mineable/pickaxe") + .displayName("Blast-Resistant Concrete Slab"); event .create("createastral:blast-resistant_concrete_stairs", "stairs") .material("stone") @@ -109,7 +111,8 @@ .textureAll("createastral:block/blast_side") .texture("up", "createastral:block/blast_top") .texture("down", "createastral:block/blast_top") - .tagBlock("minecraft:mineable/pickaxe"); + .tagBlock("minecraft:mineable/pickaxe") + .displayName("Blast-Resistant Concrete Stairs"); event .create("createastral:distillery_dummy", "basic") .hardness(4) @@ -215,6 +218,7 @@ .box(4, 0, 4, 12, 14, 12, true) .box(2, 0, 2, 14, 3, 14, true) .tagBlock("minecraft:mineable/pickaxe") + .tagBlock("minecraft:mineable/axe") .requiresTool(true) .property(BlockProperties.HORIZONTAL_FACING) .placementState(event => diff --git a/kubejs/startup_scripts/registry/kubejs/block.js b/kubejs/startup_scripts/registry/kubejs/block.js index c0839b54e..2e7bdb17c 100644 --- a/kubejs/startup_scripts/registry/kubejs/block.js +++ b/kubejs/startup_scripts/registry/kubejs/block.js @@ -19,7 +19,7 @@ .material("stone") .defaultTranslucent() .hardness(1) - .displayName("Fire Resistant Fragile Sheet Block"); + .displayName("Fire-Resistant Fragile Sheet Block"); event .create("kubejs:broken_fire_resistant_fragile_sheet_block", "basic") .material("stone") @@ -27,6 +27,6 @@ .hardness(1) .box(0, 0, 0, 16, 8, 16, true) .box(2, 8, 2, 14, 12, 14, true) - .displayName("Broken Fire Resistant Fragile Sheet Block"); + .displayName("Broken Fire-Resistant Fragile Sheet Block"); }); })(); diff --git a/kubejs/startup_scripts/tooltip/createastral.js b/kubejs/startup_scripts/tooltip/createastral.js index 2a7c9e0d4..4160cd2fb 100644 --- a/kubejs/startup_scripts/tooltip/createastral.js +++ b/kubejs/startup_scripts/tooltip/createastral.js @@ -41,6 +41,7 @@ }, ]; createastralTooltips.forEach((tooltip) => addLocalizedShiftTooltip(event, tooltip.item, tooltip.tooltip)); + event.add("createastral:cogwheel_skull", Text.of(Component.translate("tooltip.createastral.cogwheel_skull")).gray()); event.addAdvanced("createastral:orcane", (item, advanced, text) => { if (!event.isShift()) { text.add(1, [ From 910e9215c58136dd21b6c0ecdcb3629c8146b740 Mon Sep 17 00:00:00 2001 From: Nik-Was Date: Tue, 18 Nov 2025 14:49:01 +0300 Subject: [PATCH 4/5] Added a sound effect for the cogwheel skull impact, complete with a subtitle in the lang file Sound from https://pixabay.com/sound-effects/vinyl-stop-sound-effect-241388/ --- kubejs/assets/createastral/lang/en_us.json | 2 ++ kubejs/assets/createastral/sounds.json | 7 +++++++ .../assets/createastral/sounds/stop_sound.ogg | Bin 0 -> 34381 bytes kubejs/server_scripts/misc/interaction.js | 12 ++++++++++++ .../registry/createastral/sound.js | 5 +++++ 5 files changed, 26 insertions(+) create mode 100644 kubejs/assets/createastral/sounds.json create mode 100644 kubejs/assets/createastral/sounds/stop_sound.ogg create mode 100644 kubejs/startup_scripts/registry/createastral/sound.js diff --git a/kubejs/assets/createastral/lang/en_us.json b/kubejs/assets/createastral/lang/en_us.json index 53186ce0d..cb5e3f3ff 100644 --- a/kubejs/assets/createastral/lang/en_us.json +++ b/kubejs/assets/createastral/lang/en_us.json @@ -163,6 +163,8 @@ "tooltip.hover.warning.2": "Shift ", "tooltip.hover.warning.3": "to see more info.", + "subtitle.createastral.stop_sound": "Time stops", + "comment_3": "custom item/block/fluid", "item.create.lapis_sheet": "Lapis Sheet", diff --git a/kubejs/assets/createastral/sounds.json b/kubejs/assets/createastral/sounds.json new file mode 100644 index 000000000..975e51b4d --- /dev/null +++ b/kubejs/assets/createastral/sounds.json @@ -0,0 +1,7 @@ +{ + "stop_sound": { + "category": "neutral", + "subtitle": "subtitle.createastral.stop_sound", + "sounds": ["createastral:stop_sound"] + } +} \ No newline at end of file diff --git a/kubejs/assets/createastral/sounds/stop_sound.ogg b/kubejs/assets/createastral/sounds/stop_sound.ogg new file mode 100644 index 0000000000000000000000000000000000000000..115ec575bdbb77c56885739b92069cc0e071723a GIT binary patch literal 34381 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 literal 0 HcmV?d00001 diff --git a/kubejs/server_scripts/misc/interaction.js b/kubejs/server_scripts/misc/interaction.js index 48e2b2962..d3b5cf76d 100644 --- a/kubejs/server_scripts/misc/interaction.js +++ b/kubejs/server_scripts/misc/interaction.js @@ -273,6 +273,18 @@ }, ], }, + sound: { + enabled: true, + soundList: [ + { + soundName: "createastral:stop_sound", + soundType: "master", + soundRange: "128", + soundVolume: "0.3", + soundPitch: "1" + } + ], + }, }, { projectile: { item: "createbigcannons:autocannon_cartridge" }, diff --git a/kubejs/startup_scripts/registry/createastral/sound.js b/kubejs/startup_scripts/registry/createastral/sound.js new file mode 100644 index 000000000..b5cfb7278 --- /dev/null +++ b/kubejs/startup_scripts/registry/createastral/sound.js @@ -0,0 +1,5 @@ +(function createAstralSoundRegistry(){ + onEvent("sound.registry", (event) => { + event.create("createastral:stop_sound"); + }); +})(); \ No newline at end of file From fcd9abb8791c8dc65b4bb65d0f4a86a2048728bb Mon Sep 17 00:00:00 2001 From: Nik-Was Date: Tue, 20 Jan 2026 16:02:58 +0300 Subject: [PATCH 5/5] Added Ear Trinkets mod --- mods/ear-trinkets.pw.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 mods/ear-trinkets.pw.toml diff --git a/mods/ear-trinkets.pw.toml b/mods/ear-trinkets.pw.toml new file mode 100644 index 000000000..8a7cecba2 --- /dev/null +++ b/mods/ear-trinkets.pw.toml @@ -0,0 +1,13 @@ +name = "Ear Trinkets" +filename = "eartrinkets-1.0.0.jar" +side = "both" + +[download] +hash-format = "sha1" +hash = "4a2cff6e0781f3c5506e3494baafaae910977562" +mode = "metadata:curseforge" + +[update] +[update.curseforge] +file-id = 7370801 +project-id = 1412038