diff --git a/.venv/src/beet b/.venv/src/beet new file mode 160000 index 0000000..f3cf797 --- /dev/null +++ b/.venv/src/beet @@ -0,0 +1 @@ +Subproject commit f3cf797e1791d532cb23456821fd215b080e9fb3 diff --git a/build/skyvoid_additions_v1_2_7-MC_1_21.zip b/build/skyvoid_additions_v1_2_7-MC_1_21.zip deleted file mode 100644 index c51b658..0000000 Binary files a/build/skyvoid_additions_v1_2_7-MC_1_21.zip and /dev/null differ diff --git a/build/skyvoid_additions_v1_2_8-MC_1_21.zip b/build/skyvoid_additions_v1_2_8-MC_1_21.zip new file mode 100644 index 0000000..6758a80 Binary files /dev/null and b/build/skyvoid_additions_v1_2_8-MC_1_21.zip differ diff --git a/images/additions_calcite_1lava.png b/images/additions_calcite_1lava.png new file mode 100644 index 0000000..d0e0109 Binary files /dev/null and b/images/additions_calcite_1lava.png differ diff --git a/images/additions_calcite_2lava.png b/images/additions_calcite_2lava.png new file mode 100644 index 0000000..b2b2ac6 Binary files /dev/null and b/images/additions_calcite_2lava.png differ diff --git a/images/additions_calcite_3lava.png b/images/additions_calcite_3lava.png new file mode 100644 index 0000000..33feeca Binary files /dev/null and b/images/additions_calcite_3lava.png differ diff --git a/images/additions_calcite_4lava.png b/images/additions_calcite_4lava.png new file mode 100644 index 0000000..bc365ee Binary files /dev/null and b/images/additions_calcite_4lava.png differ diff --git a/images/additions_deepslate_from_tuff.png b/images/additions_deepslate_from_tuff.png new file mode 100644 index 0000000..5e6a3ad Binary files /dev/null and b/images/additions_deepslate_from_tuff.png differ diff --git a/images/additions_sand_from_gravel.png b/images/additions_sand_from_gravel.png new file mode 100644 index 0000000..260fa8f Binary files /dev/null and b/images/additions_sand_from_gravel.png differ diff --git a/images/additions_sandstone_from_sand.png b/images/additions_sandstone_from_sand.png new file mode 100644 index 0000000..7949bc2 Binary files /dev/null and b/images/additions_sandstone_from_sand.png differ diff --git a/images/additions_shulker_from_purpur.png b/images/additions_shulker_from_purpur.png new file mode 100644 index 0000000..e559bea Binary files /dev/null and b/images/additions_shulker_from_purpur.png differ diff --git a/images/additions_tuff_from_magma.png b/images/additions_tuff_from_magma.png new file mode 100644 index 0000000..eb145ee Binary files /dev/null and b/images/additions_tuff_from_magma.png differ diff --git a/src/packs/extras/skyvoid_additions/README.md b/src/packs/extras/skyvoid_additions/README.md index 0fe7b5f..525eb6a 100644 --- a/src/packs/extras/skyvoid_additions/README.md +++ b/src/packs/extras/skyvoid_additions/README.md @@ -126,6 +126,13 @@ The following settings are disabled by default *in Standard SkyBlock, mansions and pillager towers generate with allays, but no blocks* Vexes will play a note block above them and will listen for a matching note played by a player (no redstone). After 5 matching notes, it will convert into an allay. +### Create Calcite from Dead Coral Blocks +*amethyst geode creation is the default way to get calcite* +Dead coral blocks can be converted into calcite by placing them next to lava. The more lava around the block, the quicker it will convert (caped at 4 lava blocks, at least one of the lava block need to be a source block, the other can be flowing) + +### Tuff Convert into Deepslate +Anvil falling on tuff will convert it into deepslate + ### Coal Compresses into Diamonds *armor chipping is the default way to get diamonds (apart from end city ships)* Anvils dropped on a stack of coal blocks will compress them into diamonds @@ -193,13 +200,23 @@ Masons will gift pottery sherds based on the biome *burning husks on dirt is the default way to get sand and red sand* Husks can drop sand and red sand +### Gravel Convert into Sand +*burning husks on dirt is the default way to get sand* +Anvil falling on gravel will convert it into sand + +### Sand Convert into Sandstone +Anvil falling on sand will convert it into sandstone + +### Mason Trade Sandstone +Mason leveling up to Journeyman level have a chance to sell sandstone and red sandstone + ### Shrieker Endermen Spawn *in Standard SkyBlock sculk shriekers generate* Endermen can spawn on deepslate tiles holding sculk shriekers that can spawn wardens when placed by the enderman ### Shulkers from Lightning *in Standard SkyBlock end cities generate with skulkers, but no blocks* -Purpur struck by lightning will convert into a shulker +Lightning hiting a lightning rod attached to a purpur block will convert it into a shulker ### Wandering Traders Sell Sniffer Eggs *drowneds hatching sniffer eggs is the default way to get sniffers* @@ -218,5 +235,8 @@ Wandering traders will sell pottery sherds exclusive to trial chambers ### Heavy Core Renewability Falling anvils shot by a breeze have a chance to convert into a heavy core +### Magma block Convert into Tuff +A magma block hit by a wind charge will convert into tuff + ### Ominous Keys from Ominous Raid Captains Raid Captains in a level 5 raid can drop ominous trial keys diff --git a/src/packs/extras/skyvoid_additions/beet.yaml b/src/packs/extras/skyvoid_additions/beet.yaml index b69d540..3a4b5d9 100644 --- a/src/packs/extras/skyvoid_additions/beet.yaml +++ b/src/packs/extras/skyvoid_additions/beet.yaml @@ -1,7 +1,7 @@ id: 'skyvoid_additions' name: 'Sky Void Additions' author: 'BPR' -version: 1.2.7 +version: 1.2.8 require: - bolt diff --git a/src/packs/extras/skyvoid_additions/data/minecraft/loot_table/gameplay/hero_of_the_village/librarian_gift.json b/src/packs/extras/skyvoid_additions/data/minecraft/loot_table/gameplay/hero_of_the_village/librarian_gift.json index 1e24b5f..30e1517 100755 --- a/src/packs/extras/skyvoid_additions/data/minecraft/loot_table/gameplay/hero_of_the_village/librarian_gift.json +++ b/src/packs/extras/skyvoid_additions/data/minecraft/loot_table/gameplay/hero_of_the_village/librarian_gift.json @@ -15,10 +15,10 @@ "name": "minecraft:book", "functions": [ { - "function": "minecraft:set_enchantments", - "enchantments": { - "minecraft:swift_sneak": 1 - } + "function": "minecraft:enchant_randomly", + "options": [ + "minecraft:swift_sneak" + ] } ], "conditions": [ diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/calcite_from_dead_coral/place_dispenser.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/calcite_from_dead_coral/place_dispenser.json new file mode 100644 index 0000000..97657e4 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/calcite_from_dead_coral/place_dispenser.json @@ -0,0 +1,50 @@ +{ + "criteria": { + "requirement": { + "trigger": "minecraft:placed_block", + "conditions": { + "player": [ + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "skyvoid_additions" + }, + "score": "load.status" + }, + "range": 1 + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "calcite_from_dead_coral" + }, + "score": "skyvoid_config" + }, + "range": 1 + } + ], + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:dispenser" + ] + } + } + } + ] + } + } + }, + "rewards": { + "function": "skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/placed_dispenser" + } +} diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/calcite_from_dead_coral/place_lava.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/calcite_from_dead_coral/place_lava.json new file mode 100644 index 0000000..8a7054d --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/calcite_from_dead_coral/place_lava.json @@ -0,0 +1,84 @@ +{ + "criteria": { + "requirement": { + "trigger": "minecraft:placed_block", + "conditions": { + "player": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:lava_bucket" + ] + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "offhand": { + "items": [ + "minecraft:lava_bucket" + ] + }, + "mainhand": { + "count": 0 + } + } + } + } + ] + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "skyvoid_additions" + }, + "score": "load.status" + }, + "range": 1 + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "calcite_from_dead_coral" + }, + "score": "skyvoid_config" + }, + "range": 1 + } + ], + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:lava" + ] + } + } + } + ] + } + } + }, + "rewards": { + "function": "skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/placed_lava" + } +} diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/tuff_from_magma/place_dispenser.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/tuff_from_magma/place_dispenser.json new file mode 100644 index 0000000..a2abf8b --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/advancement/tuff_from_magma/place_dispenser.json @@ -0,0 +1,50 @@ +{ + "criteria": { + "requirement": { + "trigger": "minecraft:placed_block", + "conditions": { + "player": [ + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "skyvoid_additions" + }, + "score": "load.status" + }, + "range": 1 + }, + { + "condition": "minecraft:value_check", + "value": { + "type": "minecraft:score", + "target": { + "type": "minecraft:fixed", + "name": "tuff_from_magma" + }, + "score": "skyvoid_config" + }, + "range": 1 + } + ], + "location": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:dispenser" + ] + } + } + } + ] + } + } + }, + "rewards": { + "function": "skyvoid_additions:mechanics/tuff_from_magma/summon_marker/placed_dispenser" + } +} diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/default_values.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/default_values.mcfunction index a0c4b8c..91156e7 100644 --- a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/default_values.mcfunction +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/default_values.mcfunction @@ -43,8 +43,10 @@ execute unless score vaults_from_ominous_raid_captains skyvoid_config matches 0. # off by default execute unless score allay_conversion skyvoid_config matches 0..1 run scoreboard players set allay_conversion skyvoid_config 0 +execute unless score calcite_from_dead_coral skyvoid_config matches 0..1 run scoreboard players set calcite_from_dead_coral skyvoid_config 0 execute unless score chamber_sherds_from_traders skyvoid_config matches 0..1 run scoreboard players set chamber_sherds_from_traders skyvoid_config 0 execute unless score cobwebs_from_spiders skyvoid_config matches 0..1 run scoreboard players set cobwebs_from_spiders skyvoid_config 0 +execute unless score deepslate_from_tuff skyvoid_config matches 0..1 run scoreboard players set deepslate_from_tuff skyvoid_config 0 execute unless score diamonds_from_coal_blocks skyvoid_config matches 0..1 run scoreboard players set diamonds_from_coal_blocks skyvoid_config 0 execute unless score dragon_egg_drop skyvoid_config matches 0..1 run scoreboard players set dragon_egg_drop skyvoid_config 0 execute unless score dragon_elytra_drop skyvoid_config matches 0..1 run scoreboard players set dragon_elytra_drop skyvoid_config 0 @@ -62,12 +64,16 @@ execute unless score netherrack_from_bartering skyvoid_config matches 0..1 run s execute unless score nylium_from_bartering skyvoid_config matches 0..1 run scoreboard players set nylium_from_bartering skyvoid_config 0 execute unless score portal_frame_from_enderman skyvoid_config matches 0..1 run scoreboard players set portal_frame_from_enderman skyvoid_config 0 execute unless score pottery_sherd_mason_gift skyvoid_config matches 0..1 run scoreboard players set pottery_sherd_mason_gift skyvoid_config 0 +execute unless score sand_from_gravel skyvoid_config matches 0..1 run scoreboard players set sand_from_gravel skyvoid_config 0 execute unless score sand_from_husk_kill skyvoid_config matches 0..1 run scoreboard players set sand_from_husk_kill skyvoid_config 0 +execute unless score sandstone_from_packing_sand skyvoid_config matches 0..1 run scoreboard players set sandstone_from_packing_sand skyvoid_config 0 execute unless score silverfish_from_lightning skyvoid_config matches 0..1 run scoreboard players set silverfish_from_lightning skyvoid_config 0 execute unless score shriekers_from_enderman skyvoid_config matches 0..1 run scoreboard players set shriekers_from_enderman skyvoid_config 0 execute unless score shulkers_from_lightning skyvoid_config matches 0..1 run scoreboard players set shulkers_from_lightning skyvoid_config 0 execute unless score sniffer_eggs_from_traders skyvoid_config matches 0..1 run scoreboard players set sniffer_eggs_from_traders skyvoid_config 0 execute unless score sweet_berries_from_traders skyvoid_config matches 0..1 run scoreboard players set sweet_berries_from_traders skyvoid_config 0 +execute unless score tuff_from_magma skyvoid_config matches 0..1 run scoreboard players set tuff_from_magma skyvoid_config 0 +execute unless score sandstone_mason_trade skyvoid_config matches 0..1 run scoreboard players set sandstone_mason_trade skyvoid_config 0 # additional logic scoreboard players set ominous_raid_captains skyvoid_config 0 diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/update_config/open_menu.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/update_config/open_menu.mcfunction index ee05a7f..4eddbc4 100644 --- a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/update_config/open_menu.mcfunction +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/customize/update_config/open_menu.mcfunction @@ -36,6 +36,11 @@ all_settings = [ "name": "Bastion Loot from Suspicious Gravel", "desc": "Sniffers placing suspicious gravel in a bastion remnant can contain bastion loot.\n**Requires Sneezy Suspicious Sniffers" }, + { + "id": "calcite_from_dead_coral", + "name": "Create Calcite from Dead Coral Blocks", + "desc": "Dead coral blocks can be converted into calcite by placing them next to lava. The more lava around the block, the quicker it will convert (caped at 4 lava blocks, at least one of the lava block need to be a source block, the other can be flowing)." + }, { "id": "cave_spiders_in_cobwebs", "name": "Cave Spiders Spawn in Cobwebs", @@ -75,6 +80,11 @@ all_settings = [ "id": "dead_bushes_from_fishing", "name": "Dead Bush Fishing", "desc": "Dead bushes can be fished as junk in deserts and badlands" + }, + { + "id": "deepslate_from_tuff", + "name": "Tuff Convert into Deepslate", + "desc": "Anvil falling on tuff will convert it into deepslate" }, { "id": "diamonds_from_coal_blocks", @@ -226,11 +236,26 @@ all_settings = [ "name": "Burnt Husks Create Sand", "desc": "Husks that die on fire will convert dirt into sand below them, and coarse dirt into red sand" }, + { + "id": "sand_from_gravel", + "name": "Gravel Convert into Sand", + "desc": "Anvil falling on gravel will convert it into sand" + }, { "id": "sand_from_husk_kill", "name": "Husks Drop Sand", "desc": "Husks can drop sand and red sand" }, + { + "id": "sandstone_from_packing_sand", + "name": "Sand Convert into Sandstone", + "desc": "Anvil falling on sand will convert it into sandstone" + }, + { + "id": "sandstone_mason_trade", + "name": "Mason Trade Sandstone", + "desc": "Mason leveling up to Journeyman level have a chance to sell sandstone and red sandstone" + }, { "id": "shriekers_from_enderman", "name": "Shrieker Endermen Spawn", @@ -239,7 +264,7 @@ all_settings = [ { "id": "shulkers_from_lightning", "name": "Shulkers from Lightning", - "desc": "Purpur struck by lightning will convert into a shulker" + "desc": "Lightning hiting a lightning rod attached to a purpur block will convert it into a shulker" }, { "id": "silverfish_from_lightning", @@ -301,6 +326,11 @@ all_settings = [ "name": "Trial Spawners from Sculk", "desc": "Players in trial chambers with Bad Omen V can convert shriekers into trial spawners by killing mobs on shriekers above a catalyst" }, + { + "id": "tuff_from_magma", + "name": "Magma block Convert into Tuff", + "desc": "A magma block hit by a wind charge will convert into tuff" + }, { "id": "vaults_from_ominous_raid_captains", "name": "Vaults from Ominous Raid Captains", diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/check_surroundings.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/check_surroundings.mcfunction new file mode 100644 index 0000000..7556ce6 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/check_surroundings.mcfunction @@ -0,0 +1,21 @@ +# processes dead coral block markers +# @s = dead_coral block marker +# located at @s +# run from skyvoid_additions:mechanics/calcite_from_dead_coral/clock +scoreboard players set $lava_count skyvoid_additions 0 + +# Check for lava around the dead coral block +execute if entity @s[tag=skyvoid_additions_dead_coral_block] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~1 ~ ~ lava run scoreboard players add $lava_count skyvoid_additions 1 +execute if entity @s[tag=skyvoid_additions_dead_coral_block] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~-1 ~ ~ lava run scoreboard players add $lava_count skyvoid_additions 1 +execute if entity @s[tag=skyvoid_additions_dead_coral_block] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~1 ~ lava run scoreboard players add $lava_count skyvoid_additions 1 +execute if entity @s[tag=skyvoid_additions_dead_coral_block] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~-1 ~ lava run scoreboard players add $lava_count skyvoid_additions 1 +execute if entity @s[tag=skyvoid_additions_dead_coral_block] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~ ~1 lava run scoreboard players add $lava_count skyvoid_additions 1 +execute if entity @s[tag=skyvoid_additions_dead_coral_block] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~ ~-1 lava run scoreboard players add $lava_count skyvoid_additions 1 + +# Convert to calcite depending on probability (90% chance every 10sec with 4 lava around, 60% with 2 or 3 lava, 44% with one lava) +execute if score $lava_count skyvoid_additions matches 4..6 if predicate skyvoid_additions:dead_coral_conversion/four_lava run setblock ~ ~ ~ calcite +execute if score $lava_count skyvoid_additions matches 2..3 if predicate skyvoid_additions:dead_coral_conversion/two_tree_lava run setblock ~ ~ ~ calcite +execute if score $lava_count skyvoid_additions matches 1 if predicate skyvoid_additions:dead_coral_conversion/one_lava run setblock ~ ~ ~ calcite + +# kill the dead coral block merker if block (dead coral) no longer exists +execute if entity @s[tag=skyvoid_additions_dead_coral_block] unless block ~ ~ ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite run kill @s diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/clock.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/clock.mcfunction new file mode 100644 index 0000000..4f2c96c --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/clock.mcfunction @@ -0,0 +1,4 @@ +schedule function skyvoid_additions:mechanics/calcite_from_dead_coral/clock 10s + +execute as @e[type=marker,tag=skyvoid_additions_calcite_creation] at @s run function skyvoid_additions:mechanics/calcite_from_dead_coral/detect_coral_from_marker +execute as @e[type=marker,tag=skyvoid_additions_dead_coral_block] at @s run function skyvoid_additions:mechanics/calcite_from_dead_coral/check_surroundings diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/detect_coral_from_marker.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/detect_coral_from_marker.mcfunction new file mode 100644 index 0000000..656e398 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/detect_coral_from_marker.mcfunction @@ -0,0 +1,22 @@ +# processes lava and dispenser markers +# @s = lava/dispenser marker +# located at @s +# run from skyvoid_additions:mechanics/calcite_from_dead_coral/clock +#place marker at dead coral pos +execute if entity @s[tag=skyvoid_additions_lava] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~1 ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~1 ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_lava] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~-1 ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~-1 ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_lava] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~1 ~ ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~1 ~ ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_lava] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~-1 ~ ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~-1 ~ ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_lava] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~ ~1 #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~ ~1 unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_lava] align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~ ~-1 #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~ ~-1 unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} + +execute if entity @s[tag=skyvoid_additions_dispenser] positioned ^ ^ ^1 if block ~ ~1 ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~1 ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_dispenser] positioned ^ ^ ^1 if block ~ ~-1 ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~-1 ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_dispenser] positioned ^ ^ ^1 if block ~1 ~ ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~1 ~ ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_dispenser] positioned ^ ^ ^1 if block ~-1 ~ ~ #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~-1 ~ ~ unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_dispenser] positioned ^ ^ ^1 if block ~ ~ ~1 #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~ ~1 unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} +execute if entity @s[tag=skyvoid_additions_dispenser] positioned ^ ^ ^1 if block ~ ~ ~-1 #skyvoid_additions:calcite_from_dead_coral_blocks/converts_to_calcite positioned ~ ~ ~-1 unless entity @e[tag=skyvoid_additions_dead_coral_block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_dead_coral_block"',Tags:["skyvoid_additions_dead_coral_block"]} + +# kill if block no longer exists +execute if entity @s[tag=skyvoid_additions_lava] unless block ~ ~ ~ lava run kill @s +execute if entity @s[tag=skyvoid_additions_dispenser] unless block ~ ~ ~ dispenser run kill @s diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray.mcfunction new file mode 100644 index 0000000..d16ee50 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray.mcfunction @@ -0,0 +1,11 @@ +# ray cast to find dispenser +# @s = player that placed a dispenser +# located at @s anchored eyes positioned ^ ^ ^0.X where X = step count +# run from skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/placed_dispenser + +# check block +execute store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker + +# runs the loop again +scoreboard players remove $ray skyvoid_additions 1 +execute unless score $found skyvoid_additions matches 1 if score $ray skyvoid_additions matches 1.. positioned ^ ^ ^0.1 run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray_fuzzy.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray_fuzzy.mcfunction new file mode 100644 index 0000000..0059baf --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray_fuzzy.mcfunction @@ -0,0 +1,16 @@ +# fuzzy ray cast to find dispenser +# @s = player that placed a dispenser +# located at @s anchored eyes positioned ^ ^ ^0.X where X = step count +# run from skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/placed_dispenser + +# check adjacent blocks +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~1.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~-0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~1.5 ~0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~-0.5 ~0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~1.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~-0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker + +# runs the loop again +scoreboard players remove $ray skyvoid_additions 1 +execute unless score $found skyvoid_additions matches 1 if score $ray skyvoid_additions matches 1.. positioned ^ ^ ^0.1 run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray_fuzzy diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/lava_ray.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/lava_ray.mcfunction new file mode 100644 index 0000000..6c9bdb8 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/lava_ray.mcfunction @@ -0,0 +1,6 @@ +execute store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~ ~ lava[level=0] + +execute if score $found skyvoid_additions matches 1 align xyz positioned ~0.5 ~0.5 ~0.5 unless entity @e[tag=smithed.entity,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_lava"',Tags:["skyvoid_additions_lava","skyvoid_additions_calcite_creation"]} + +scoreboard players remove $ray skyvoid_additions 1 +execute unless score $found skyvoid_additions matches 1 if score $ray skyvoid_additions matches 1.. positioned ^ ^ ^0.1 run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/lava_ray diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/lava_ray_fuzzy.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/lava_ray_fuzzy.mcfunction new file mode 100644 index 0000000..6e61dfb --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/lava_ray_fuzzy.mcfunction @@ -0,0 +1,12 @@ +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~1.5 ~0.5 if block ~ ~ ~ lava[level=0] unless entity @e[tag=smithed.block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_lava"',Tags:["skyvoid_additions_lava","skyvoid_additions_calcite_creation"]} +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~-0.5 ~0.5 if block ~ ~ ~ lava[level=0] unless entity @e[tag=smithed.block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_lava"',Tags:["skyvoid_additions_lava","skyvoid_additions_calcite_creation"]} +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~1.5 ~0.5 ~0.5 if block ~ ~ ~ lava[level=0] unless entity @e[tag=smithed.block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_lava"',Tags:["skyvoid_additions_lava","skyvoid_additions_calcite_creation"]} +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~-0.5 ~0.5 ~0.5 if block ~ ~ ~ lava[level=0] unless entity @e[tag=smithed.block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_lava"',Tags:["skyvoid_additions_lava","skyvoid_additions_calcite_creation"]} +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~1.5 if block ~ ~ ~ lava[level=0] unless entity @e[tag=smithed.block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_lava"',Tags:["skyvoid_additions_lava","skyvoid_additions_calcite_creation"]} +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~-0.5 if block ~ ~ ~ lava[level=0] unless entity @e[tag=smithed.block,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_lava"',Tags:["skyvoid_additions_lava","skyvoid_additions_calcite_creation"]} + +execute if score $found skyvoid_additions matches 1 as @e[type=marker,tag=skyvoid_additions_lava,distance=..2] at @s if entity @e[tag=smithed.block,distance=..0.5,limit=1] run kill @s + +# runs the loop again +scoreboard players remove $ray skyvoid_additions 1 +execute unless score $found skyvoid_additions matches 1 if score $ray skyvoid_additions matches 1.. positioned ^ ^ ^0.1 run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/lava_ray_fuzzy diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/placed_dispenser.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/placed_dispenser.mcfunction new file mode 100644 index 0000000..8d778b5 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/placed_dispenser.mcfunction @@ -0,0 +1,13 @@ +# search for placed a dispenser +# @s = player that placed a dispenser +# located at @s +# run from advancement skyvoid_additions:calcite_from_dead_coral/place_dispenser + +advancement revoke @s only skyvoid_additions:calcite_from_dead_coral/place_dispenser + +scoreboard players set $ray skyvoid_additions 50 +scoreboard players set $found skyvoid_additions 0 +execute anchored eyes positioned ^ ^ ^ run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray + +scoreboard players set $ray skyvoid_additions 50 +execute if score $found skyvoid_additions matches 0 anchored eyes positioned ^ ^ ^ run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray_fuzzy diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/placed_lava.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/placed_lava.mcfunction new file mode 100644 index 0000000..5cdcfb9 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/placed_lava.mcfunction @@ -0,0 +1,8 @@ +advancement revoke @s only skyvoid_additions:calcite_from_dead_coral/place_lava + +scoreboard players set $ray skyvoid_additions 50 +scoreboard players set $found skyvoid_additions 0 +execute anchored eyes positioned ^ ^ ^ run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/lava_ray + +scoreboard players set $ray skyvoid_additions 50 +execute if score $found skyvoid_additions matches 0 anchored eyes positioned ^ ^ ^ run function skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/lava_ray_fuzzy diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker.mcfunction new file mode 100644 index 0000000..a259bcc --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/calcite_from_dead_coral/summon_marker/summon_dispenser_marker.mcfunction @@ -0,0 +1,16 @@ +# summons a dispenser marker facing the same direction as the dispenser +# @s = player that placed a dispenser +# located at @s the placed dispenser +# run from skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray +# skyvoid_additions:mechanics/calcite_from_dead_coral/summon_marker/dispenser_ray_fuzzy + +execute if entity @e[tag=smithed.block,distance=..0.5,limit=1] run return 0 + +execute if block ~ ~ ~ dispenser[facing=down] run summon marker ~ ~ ~ {Rotation:[0.0f,90.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser","skyvoid_additions_calcite_creation"]} +execute if block ~ ~ ~ dispenser[facing=up] run summon marker ~ ~ ~ {Rotation:[0.0f,-90.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser","skyvoid_additions_calcite_creation"]} +execute if block ~ ~ ~ dispenser[facing=north] run summon marker ~ ~ ~ {Rotation:[180.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser","skyvoid_additions_calcite_creation"]} +execute if block ~ ~ ~ dispenser[facing=south] run summon marker ~ ~ ~ {Rotation:[0.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser","skyvoid_additions_calcite_creation"]} +execute if block ~ ~ ~ dispenser[facing=east] run summon marker ~ ~ ~ {Rotation:[-90.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser","skyvoid_additions_calcite_creation"]} +execute if block ~ ~ ~ dispenser[facing=west] run summon marker ~ ~ ~ {Rotation:[90.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser","skyvoid_additions_calcite_creation"]} + +return 1 diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/deepslate_from_tuff/check_falling_block.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/deepslate_from_tuff/check_falling_block.mcfunction new file mode 100644 index 0000000..e748201 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/deepslate_from_tuff/check_falling_block.mcfunction @@ -0,0 +1,11 @@ +# checks if the falling block is an anvil and converts tuff block into deepslate block +# @s = falling block +# run from skyvoid_additions:mechanics/deepslate_from_tuff/clock +# check nbt of falling block +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:anvil"}} run tag @s add skyvoid_additions_falling_anvil +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:chipped_anvil"}} run tag @s add skyvoid_additions_falling_anvil +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:damaged_anvil"}} run tag @s add skyvoid_additions_falling_anvil +tag @s[tag=!skyvoid_additions_falling_anvil] add skyvoid_additions_anvil_check + +# Convert tuff block to deepslate block +execute at @s[tag=skyvoid_additions_falling_anvil] positioned ~ ~-0.5 ~ if block ~ ~ ~ tuff run setblock ~ ~ ~ deepslate diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/deepslate_from_tuff/clock.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/deepslate_from_tuff/clock.mcfunction new file mode 100644 index 0000000..4abe6e3 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/deepslate_from_tuff/clock.mcfunction @@ -0,0 +1,3 @@ +schedule function skyvoid_additions:mechanics/deepslate_from_tuff/clock 1t + +execute as @e[type=falling_block,tag=!skyvoid_additions_anvil_check,tag=!smithed.entity] run function skyvoid_additions:mechanics/deepslate_from_tuff/check_falling_block diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/check_falling_block.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/check_falling_block.mcfunction new file mode 100644 index 0000000..fc6f644 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/check_falling_block.mcfunction @@ -0,0 +1,13 @@ +# checks if the falling block is an anvil and converts gravel block into sand block +# @s = falling block +# run from skyvoid_additions:mechanics/sand_from_gravel/clock +# check nbt of falling block +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:anvil"}} run tag @s add skyvoid_additions_falling_anvil +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:chipped_anvil"}} run tag @s add skyvoid_additions_falling_anvil +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:damaged_anvil"}} run tag @s add skyvoid_additions_falling_anvil +tag @s[tag=!skyvoid_additions_falling_anvil] add skyvoid_additions_anvil_check + +# convert gravel block to sand block +execute at @s[tag=skyvoid_additions_falling_anvil] positioned ~ ~-0.5 ~ if block ~ ~ ~ gravel align xyz positioned ~0.5 ~0.5 ~0.5 unless entity @e[tag=skyvoid_additions_gravel,distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_gravel"',Tags:["skyvoid_additions_gravel"]} +# add tag to the anvil to prevent insant conversion into sandstone +execute at @s[tag=skyvoid_additions_falling_anvil] positioned ~ ~-0.5 ~ if block ~ ~ ~ gravel run tag @s add skyvoid_additions_anvil_check diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/clock.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/clock.mcfunction new file mode 100644 index 0000000..2dc57cd --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/clock.mcfunction @@ -0,0 +1,4 @@ +schedule function skyvoid_additions:mechanics/sand_from_gravel/clock 1t + +execute as @e[type=falling_block,tag=!skyvoid_additions_anvil_check,tag=!smithed.entity] run function skyvoid_additions:mechanics/sand_from_gravel/check_falling_block +execute as @e[type=marker,tag=skyvoid_additions_gravel] at @s run function skyvoid_additions:mechanics/sand_from_gravel/place_sand diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/place_sand.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/place_sand.mcfunction new file mode 100644 index 0000000..b04ca9d --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sand_from_gravel/place_sand.mcfunction @@ -0,0 +1,6 @@ +# replaces gravel with sand +# @s = marker gravel +# located at the block below the anvil/ position of the marker +# run from skyvoid_additions:mechanics/sand_from_gravel/clock +execute as @s at @s if block ~ ~ ~ gravel run setblock ~ ~ ~ sand +execute if entity @s[tag=skyvoid_additions_gravel] unless block ~ ~ ~ gravel run kill @s diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_from_packing_sand/check_falling_block.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_from_packing_sand/check_falling_block.mcfunction new file mode 100644 index 0000000..697787a --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_from_packing_sand/check_falling_block.mcfunction @@ -0,0 +1,11 @@ +# checks if the falling block is an anvil and converts sand block into sandstone block +# @s = falling block +# run from skyvoid_additions:mechanics/sandstone_from_packing_sand/clock +# check nbt of falling block +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:anvil"}} run tag @s add skyvoid_additions_falling_anvil +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:chipped_anvil"}} run tag @s add skyvoid_additions_falling_anvil +execute unless entity @s[tag=skyvoid_additions_falling_anvil] if data entity @s {BlockState:{Name:"minecraft:damaged_anvil"}} run tag @s add skyvoid_additions_falling_anvil +tag @s[tag=!skyvoid_additions_falling_anvil] add skyvoid_additions_anvil_check + +# convert gravel block to sand block +execute at @s[tag=skyvoid_additions_falling_anvil] positioned ~ ~-0.5 ~ if block ~ ~ ~ sand run setblock ~ ~ ~ sandstone diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_from_packing_sand/clock.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_from_packing_sand/clock.mcfunction new file mode 100644 index 0000000..9549daa --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_from_packing_sand/clock.mcfunction @@ -0,0 +1,3 @@ +schedule function skyvoid_additions:mechanics/sandstone_from_packing_sand/clock 1t + +execute as @e[type=falling_block,tag=!skyvoid_additions_anvil_check,tag=!smithed.entity] run function skyvoid_additions:mechanics/sandstone_from_packing_sand/check_falling_block diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/clock.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/clock.mcfunction new file mode 100644 index 0000000..607fa67 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/clock.mcfunction @@ -0,0 +1,4 @@ +#need a clock since we cant detect and triger from villager leveling up, or player closing villager inventory +schedule function skyvoid_additions:mechanics/sandstone_mason_trade/clock 1t + +execute as @e[type=minecraft:villager,nbt={VillagerData:{profession:"minecraft:mason",level:3}},tag=!trade_changed] run function skyvoid_additions:mechanics/sandstone_mason_trade/trade_rng diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/trade_rng.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/trade_rng.mcfunction new file mode 100644 index 0000000..fa66d2d --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/trade_rng.mcfunction @@ -0,0 +1,20 @@ +# Generate random number to simulate a 22% chance of sandstone and red_sandstone +# @s = mason that level up to journeyman level +# run from skyvoid_additions:mechanics/sandstone_mason_trade/clock + +#set random trade number scoreboard +scoreboard objectives add trade_choice_1 dummy +scoreboard objectives add trade_choice_2 dummy + +# Generating first trade number +execute store result score trade_1 mason_trade_rng run loot spawn ~ -3000 ~ loot skyvoid_additions:technical/sandstone_mason_trade/random_trade_9 +scoreboard players operation @s trade_choice_1 = trade_1 mason_trade_rng + +# Generating second trade number +execute store result score trade_2 mason_trade_rng run loot spawn ~ -3000 ~ loot skyvoid_additions:technical/sandstone_mason_trade/random_trade_8 +scoreboard players operation @s trade_choice_2 = trade_2 mason_trade_rng + +# Correction to prevent one trade from apearing twice +execute as @s if score @s trade_choice_2 >= @s trade_choice_1 run scoreboard players add @s trade_choice_2 1 + +execute as @s at @s run function skyvoid_additions:mechanics/sandstone_mason_trade/trade_selection diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/trade_selection.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/trade_selection.mcfunction new file mode 100644 index 0000000..bf7ca1b --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/sandstone_mason_trade/trade_selection.mcfunction @@ -0,0 +1,18 @@ +# Add sandstone and red_sandstone trade to journeyman mason if random value is ok +# @s = mason that level up to journeyman level +# run from skyvoid_additions:mechanics/mason_sandstones/trade_rng + +# Replace trade [INDEX=4] if trade_choice_1 >= 8, else trade not changed +execute as @s if score @s trade_choice_1 matches 8 run data modify entity @s Offers.Recipes[4] set value {buy:{id:"minecraft:emerald",count:1},sell:{id:"minecraft:sandstone",count:4},maxUses:16,rewardExp:1,xp:10,priceMultiplier:0.05f} +execute as @s if score @s trade_choice_1 matches 9 run data modify entity @s Offers.Recipes[4] set value {buy:{id:"minecraft:emerald",count:1},sell:{id:"minecraft:red_sandstone",count:4},maxUses:16,rewardExp:1,xp:10,priceMultiplier:0.05f} + +# Replace trade [INDEX=4] if trade_choice_2 >= 8, else trade not changed +execute as @s if score @s trade_choice_2 matches 8 run data modify entity @s Offers.Recipes[5] set value {buy:{id:"minecraft:emerald",count:1},sell:{id:"minecraft:sandstone",count:4},maxUses:16,rewardExp:1,xp:10,priceMultiplier:0.05f} +execute as @s if score @s trade_choice_2 matches 9 run data modify entity @s Offers.Recipes[5] set value {buy:{id:"minecraft:emerald",count:1},sell:{id:"minecraft:red_sandstone",count:4},maxUses:16,rewardExp:1,xp:10,priceMultiplier:0.05f} + +# Prevent loop +execute as @s run tag @s add trade_changed + +# Clear scoreboard +scoreboard objectives remove trade_choice_1 +scoreboard objectives remove trade_choice_2 diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/clock.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/clock.mcfunction new file mode 100644 index 0000000..5a7be48 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/clock.mcfunction @@ -0,0 +1,5 @@ +schedule function skyvoid_additions:mechanics/tuff_from_magma/clock 1t + +execute as @e[type=minecraft:breeze_wind_charge] run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker +execute as @e[type=minecraft:wind_charge] run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker +execute run function skyvoid_additions:mechanics/tuff_from_magma/convert diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/convert.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/convert.mcfunction new file mode 100644 index 0000000..dba8b50 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/convert.mcfunction @@ -0,0 +1,10 @@ +# Check for magma block in front the wind charge (the marker that marks the last position of the wind charge) +# @s = marker,tag=skyvoid_additions_wind_marker_rotated +# located at @s +# run from skyvoid_additions:mechanics/tuff_from_magma/clock +execute as @e[type=marker,tag=skyvoid_additions_wind_marker_rotated] at @s unless entity @e[type=wind_charge,distance=..0.5,limit=1] positioned ~ ~-0.3125 ~ run execute if block ^ ^ ^0.5 magma_block run setblock ^ ^ ^0.5 tuff +execute as @e[type=marker,tag=skyvoid_additions_wind_marker_rotated] at @s unless entity @e[type=wind_charge,distance=..0.5,limit=1] positioned ~ ~-0.3125 ~ run execute if block ^ ^ ^1 magma_block run setblock ^ ^ ^1 tuff +execute as @e[type=marker,tag=skyvoid_additions_wind_marker_rotated] at @s unless entity @e[type=wind_charge,distance=..0.5,limit=1] positioned ~ ~-0.3125 ~ run execute if block ^ ^ ^1.5 magma_block run setblock ^ ^ ^1.5 tuff + +#kill ther merker once done +execute as @e[type=marker,tag=skyvoid_additions_wind_marker_rotated] at @s unless entity @e[type=#skyvoid_additions:tuff_from_magma/wind_charges,distance=..3,limit=1] run kill @s diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/kill_wind_charges_on_launch.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/kill_wind_charges_on_launch.mcfunction new file mode 100644 index 0000000..2a1d47d --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/kill_wind_charges_on_launch.mcfunction @@ -0,0 +1 @@ +execute as @e[type=#skyvoid_additions:tuff_from_magma/wind_charges] at @s run kill @s diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker.mcfunction new file mode 100644 index 0000000..4cf9354 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker.mcfunction @@ -0,0 +1,22 @@ +# Summon marker to folow the wind charge position +# @s breeze_wind_charge_ or wind_charge (from player or dispenser) +# located at @s +# run from skyvoid_additions:mechanics/tuff_from_magma/clock +#Summon the marker +execute as @e[type=breeze_wind_charge] at @s unless entity @e[name="skyvoid_additions_wind_marker",distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_wind_marker"',Tags:["skyvoid_additions_wind_marker"]} +execute as @e[type=wind_charge] at @s unless entity @e[name="skyvoid_additions_wind_marker",distance=..0.5,limit=1] run summon marker ~ ~ ~ {CustomName:'"skyvoid_additions_wind_marker"',Tags:["skyvoid_additions_wind_marker"]} + +#tp the marker to the nearest entity that could have lauched it, to get the entity facing direction +execute as @e[type=wind_charge] at @s if entity @e[type=player,distance=..2,limit=1] run execute as @n[type=player,limit=1] at @s unless entity @e[tag=skyvoid_additions_wind_marker_rotated,distance=..0.5,limit=1] run tp @n[type=marker,tag=skyvoid_additions_wind_marker,tag=!skyvoid_additions_wind_marker_rotated] ~ ~ ~ ~ ~ +execute as @e[type=wind_charge] at @s if entity @e[type=marker,tag=skyvoid_additions_dispenser,distance=..3,limit=1] run execute as @n[type=marker,tag=skyvoid_additions_dispenser,limit=1] at @s unless entity @e[tag=skyvoid_additions_wind_marker_rotated,distance=..0.5,limit=1] run tp @n[type=marker,tag=skyvoid_additions_wind_marker,tag=!skyvoid_additions_wind_marker_rotated] ~ ~ ~ ~ ~ +execute as @e[type=breeze_wind_charge] at @s if entity @e[type=breeze,distance=..2,limit=1] run execute as @n[type=breeze,limit=1] at @s unless entity @e[tag=skyvoid_additions_wind_marker_rotated,distance=..0.5,limit=1] run tp @n[type=marker,tag=skyvoid_additions_wind_marker,tag=!skyvoid_additions_wind_marker_rotated] ~ ~ ~ ~ ~ + +#to prevent constant tp to summoner entity +tag @n[tag=skyvoid_additions_wind_marker] add skyvoid_additions_wind_marker_rotated + +#ride the wind_charge or breeze_wind_charge to get its impact position +ride @n[type=marker,tag=skyvoid_additions_wind_marker_rotated] mount @n[type=breeze_wind_charge] +ride @n[type=marker,tag=skyvoid_additions_wind_marker_rotated] mount @n[type=wind_charge] + +#kill the dispenser merker if no dispenser +execute if entity @s[tag=skyvoid_additions_dispenser] unless block ~ ~ ~ dispenser run kill @s diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/dispenser_ray.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/dispenser_ray.mcfunction new file mode 100644 index 0000000..f7e7709 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/dispenser_ray.mcfunction @@ -0,0 +1,11 @@ +# ray cast to find dispenser +# @s = player that placed a dispenser +# located at @s anchored eyes positioned ^ ^ ^0.X where X = step count +# run from skyvoid_additions:mechanics/tuff_from_magma/summon_marker/placed_dispenser + +# check block +execute store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker + +# runs the loop again +scoreboard players remove $ray skyvoid_additions 1 +execute unless score $found skyvoid_additions matches 1 if score $ray skyvoid_additions matches 1.. positioned ^ ^ ^0.1 run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/dispenser_ray diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/dispenser_ray_fuzzy.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/dispenser_ray_fuzzy.mcfunction new file mode 100644 index 0000000..f444748 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/dispenser_ray_fuzzy.mcfunction @@ -0,0 +1,16 @@ +# fuzzy ray cast to find dispenser +# @s = player that placed a dispenser +# located at @s anchored eyes positioned ^ ^ ^0.X where X = step count +# run from skyvoid_additions:mechanics/tuff_from_magma/summon_marker/placed_dispenser + +# check adjacent blocks +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~1.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~-0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~1.5 ~0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~-0.5 ~0.5 ~0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~1.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker +execute if score $found skyvoid_additions matches 0 store success score $found skyvoid_additions align xyz positioned ~0.5 ~0.5 ~-0.5 if block ~ ~ ~ dispenser run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker + +# runs the loop again +scoreboard players remove $ray skyvoid_additions 1 +execute unless score $found skyvoid_additions matches 1 if score $ray skyvoid_additions matches 1.. positioned ^ ^ ^0.1 run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/dispenser_ray_fuzzy diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/placed_dispenser.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/placed_dispenser.mcfunction new file mode 100644 index 0000000..9d5792a --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/placed_dispenser.mcfunction @@ -0,0 +1,13 @@ +# search for placed a dispenser +# @s = player that placed a dispenser +# located at @s +# run from advancement skyvoid_additions:tuff_from_magma/place_dispenser + +advancement revoke @s only skyvoid_additions:calcite_from_dead_coral/place_dispenser + +scoreboard players set $ray skyvoid_additions 50 +scoreboard players set $found skyvoid_additions 0 +execute anchored eyes positioned ^ ^ ^ run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/dispenser_ray + +scoreboard players set $ray skyvoid_additions 50 +execute if score $found skyvoid_additions matches 0 anchored eyes positioned ^ ^ ^ run function skyvoid_additions:mechanics/tuff_from_magma/summon_marker/dispenser_ray_fuzzy diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker.mcfunction new file mode 100644 index 0000000..7ab5b9d --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/mechanics/tuff_from_magma/summon_marker/summon_dispenser_marker.mcfunction @@ -0,0 +1,16 @@ +# summons a dispenser marker facing the same direction as the dispenser +# @s = player that placed a dispenser +# located at @s the placed dispenser +# run from skyvoid_additions:mechanics/tuff_from_magma/summon_marker/dispenser_ray +# skyvoid_additions:mechanics/tuff_from_magma/summon_marker/dispenser_ray_fuzzy + +execute if entity @e[tag=smithed.block,distance=..0.5,limit=1] run return 0 + +execute if block ~ ~ ~ dispenser[facing=down] run summon marker ~ ~ ~ {Rotation:[0.0f,90.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser"]} +execute if block ~ ~ ~ dispenser[facing=up] run summon marker ~ ~ ~ {Rotation:[0.0f,-90.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser"]} +execute if block ~ ~ ~ dispenser[facing=north] run summon marker ~ ~ ~ {Rotation:[180.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser"]} +execute if block ~ ~ ~ dispenser[facing=south] run summon marker ~ ~ ~ {Rotation:[0.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser"]} +execute if block ~ ~ ~ dispenser[facing=east] run summon marker ~ ~ ~ {Rotation:[-90.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser"]} +execute if block ~ ~ ~ dispenser[facing=west] run summon marker ~ ~ ~ {Rotation:[90.0f,0.0f],CustomName:'"skyvoid_additions_dispenser"',Tags:["skyvoid_additions_dispenser"]} + +return 1 diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/technical/load.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/technical/load.mcfunction index 3279028..fdb68b8 100644 --- a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/technical/load.mcfunction +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/technical/load.mcfunction @@ -5,6 +5,7 @@ scoreboard objectives add skyvoid_note dummy scoreboard objectives add skyvoid_levelup dummy scoreboard objectives add skyvoid_config dummy scoreboard objectives add skyvoid_raid_tracker dummy +scoreboard objectives add mason_trade_rng dummy function skyvoid_additions:customize/default_values execute if score $feedback skyvoid_additions matches 1 run gamerule sendCommandFeedback true @@ -29,6 +30,12 @@ schedule clear skyvoid_additions:mechanics/end_stone_from_endermites/clock schedule clear skyvoid_additions:mechanics/amethyst_geode_creation/clock schedule clear skyvoid_additions:mechanics/end_phantoms/clock schedule clear skyvoid_additions:mechanics/heavy_core_from_winded_anvil/clock +schedule clear skyvoid_additions:mechanics/calcite_from_dead_coral/clock +schedule clear skyvoid_additions:mechanics/deepslate_from_tuff/clock +schedule clear skyvoid_additions:mechanics/sand_from_gravel/clock +schedule clear skyvoid_additions:mechanics/sandstone_from_packing_sand/clock +schedule clear skyvoid_additions:mechanics/tuff_from_magma/clock +schedule clear skyvoid_additions:mechanics/sandstone_mason_trade/clock # every tick execute if score diamonds_from_coal_blocks skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/diamonds_from_coal_blocks/clock 1t replace @@ -36,6 +43,14 @@ execute if score sand_from_burnt_husks skyvoid_config matches 1 run schedule fun execute if score allay_conversion skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/allay_conversion/clock_1t 1t replace execute if score heavy_core_from_winded_anvil skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/heavy_core_from_winded_anvil/clock 1t replace execute if score breeze_from_frozen_blaze skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/breeze_from_frozen_blaze/clock 1t replace +execute if score deepslate_from_tuff skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/deepslate_from_tuff/clock 1t replace +execute if score sand_from_gravel skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/sand_from_gravel/clock 1t replace +execute if score sandstone_from_packing_sand skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/sandstone_from_packing_sand/clock 1t replace +execute if score tuff_from_magma skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/tuff_from_magma/clock 1t replace +execute if score sandstone_mason_trade skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/sandstone_mason_trade/clock 1t replace + +#once +execute if score tuff_from_magma skyvoid_config matches 1 run function skyvoid_additions:mechanics/tuff_from_magma/kill_wind_charges_on_launch # every second execute if score allay_conversion skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/allay_conversion/clock_1s 4t replace @@ -53,6 +68,7 @@ execute if score shriekers_from_enderman skyvoid_config matches 1 run schedule f execute if score cobwebs_from_spiders skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/cobwebs_from_spiders/clock 23t replace execute if score chorus_from_endermites skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/chorus_from_endermites/clock 63t replace execute if score end_stone_from_endermites skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/end_stone_from_endermites/clock 103t replace +execute if score calcite_from_dead_coral skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/calcite_from_dead_coral/clock 123t replace execute if score suspicious_sniffers skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/suspicious_sniffers/clock 163t replace execute if score ominous_raid_captains skyvoid_config matches 1 run schedule function skyvoid_additions:mechanics/ominous_raid_captains/clock 183t replace diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/versioning/load.mcfunction b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/versioning/load.mcfunction index 089a837..f6f04a0 100644 --- a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/versioning/load.mcfunction +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/function/versioning/load.mcfunction @@ -20,5 +20,11 @@ schedule clear skyvoid_additions:mechanics/chorus_from_endermites/clock schedule clear skyvoid_additions:mechanics/end_stone_from_endermites/clock schedule clear skyvoid_additions:mechanics/amethyst_geode_creation/clock schedule clear skyvoid_additions:mechanics/end_phantoms/clock +schedule clear skyvoid_additions:mechanics/calcite_from_dead_coral/clock +schedule clear skyvoid_additions:mechanics/deepslate_from_tuff/clock +schedule clear skyvoid_additions:mechanics/sand_from_gravel/clock +schedule clear skyvoid_additions:mechanics/sandstone_from_packing_sand/clock +schedule clear skyvoid_additions:mechanics/tuff_from_magma/clock +schedule clear skyvoid_additions:mechanics/sandstone_mason_trade/clock execute if score skyvoid_additions load.status matches 1 run function skyvoid_additions:technical/load diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/loot_table/technical/sandstone_mason_trade/random_trade_8.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/loot_table/technical/sandstone_mason_trade/random_trade_8.json new file mode 100644 index 0000000..7fff199 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/loot_table/technical/sandstone_mason_trade/random_trade_8.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:command", + "pools": [ + { + "rolls": { + "min": 1, + "max": 8 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stick", + "functions": [ + { + "function": "minecraft:set_count", + "count": 0 + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/loot_table/technical/sandstone_mason_trade/random_trade_9.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/loot_table/technical/sandstone_mason_trade/random_trade_9.json new file mode 100644 index 0000000..ea15048 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/loot_table/technical/sandstone_mason_trade/random_trade_9.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:command", + "pools": [ + { + "rolls": { + "min": 1, + "max": 9 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stick", + "functions": [ + { + "function": "minecraft:set_count", + "count": 0 + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/four_lava.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/four_lava.json new file mode 100644 index 0000000..7fddd1f --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/four_lava.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.9 +} diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/one_lava.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/one_lava.json new file mode 100644 index 0000000..36dc21a --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/one_lava.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.44 +} diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/two_tree_lava.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/two_tree_lava.json new file mode 100644 index 0000000..f6a39fb --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/predicate/dead_coral_conversion/two_tree_lava.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.6 +} diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/tags/block/calcite_from_dead_coral_blocks/converts_to_calcite.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/tags/block/calcite_from_dead_coral_blocks/converts_to_calcite.json new file mode 100644 index 0000000..8f86b9c --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/tags/block/calcite_from_dead_coral_blocks/converts_to_calcite.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:dead_brain_coral_block", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_fire_coral_block", + "minecraft:dead_horn_coral_block", + "minecraft:dead_tube_coral_block" + ] +} diff --git a/src/packs/extras/skyvoid_additions/data/skyvoid_additions/tags/entity_type/tuff_from_magma/wind_charges.json b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/tags/entity_type/tuff_from_magma/wind_charges.json new file mode 100644 index 0000000..e998839 --- /dev/null +++ b/src/packs/extras/skyvoid_additions/data/skyvoid_additions/tags/entity_type/tuff_from_magma/wind_charges.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:wind_charge", + "minecraft:breeze_wind_charge" + ] +} \ No newline at end of file