diff options
author | Chris Xiong <chirs241097@gmail.com> | 2021-07-24 16:59:58 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2021-07-24 16:59:58 +0800 |
commit | 77f0e689f84a601f5da4aaf2308bccf74a531346 (patch) | |
tree | 8154832f6c4ac0d071a771657c4a67c6a024f398 /data | |
download | bktmc-skyblock-77f0e689f84a601f5da4aaf2308bccf74a531346.tar.xz |
Initial public release (minecraft 1.17.1).
Diffstat (limited to 'data')
104 files changed, 2206 insertions, 0 deletions
diff --git a/data/bktsb/functions/booklistener.mcfunction b/data/bktsb/functions/booklistener.mcfunction new file mode 100644 index 0000000..709f2c6 --- /dev/null +++ b/data/bktsb/functions/booklistener.mcfunction @@ -0,0 +1,36 @@ +execute as @a[predicate=bktsb:dummy1,y_rotation=-45..44] at @s run function bktsb:structgen/gen_endship_south +execute as @a[predicate=bktsb:dummy1,y_rotation=45..134] at @s run function bktsb:structgen/gen_endship_west +execute as @a[predicate=bktsb:dummy1,y_rotation=135..224] at @s run function bktsb:structgen/gen_endship_north +execute as @a[predicate=bktsb:dummy1,y_rotation=-135..-46] at @s run function bktsb:structgen/gen_endship_east +recipe take @a[predicate=bktsb:dummy1] bktsb:dummy1 + +execute as @a[predicate=bktsb:dummy2,y_rotation=-45..44] at @s run function bktsb:structgen/gen_bastion_south +execute as @a[predicate=bktsb:dummy2,y_rotation=45..134] at @s run function bktsb:structgen/gen_bastion_west +execute as @a[predicate=bktsb:dummy2,y_rotation=135..224] at @s run function bktsb:structgen/gen_bastion_north +execute as @a[predicate=bktsb:dummy2,y_rotation=-135..-46] at @s run function bktsb:structgen/gen_bastion_east +recipe take @a[predicate=bktsb:dummy2] bktsb:dummy2 + +execute as @a[predicate=bktsb:dummy3,y_rotation=-45..44] at @s run function bktsb:structgen/gen_fortressbalcony_south +execute as @a[predicate=bktsb:dummy3,y_rotation=45..134] at @s run function bktsb:structgen/gen_fortressbalcony_west +execute as @a[predicate=bktsb:dummy3,y_rotation=135..224] at @s run function bktsb:structgen/gen_fortressbalcony_north +execute as @a[predicate=bktsb:dummy3,y_rotation=-135..-46] at @s run function bktsb:structgen/gen_fortressbalcony_east +recipe take @a[predicate=bktsb:dummy3] bktsb:dummy3 + +execute as @a[predicate=bktsb:dummy4,y_rotation=-45..44] at @s run setblock ~ ~ ~1 chest[facing=north] +execute as @a[predicate=bktsb:dummy4,y_rotation=-45..44] at @s run data modify block ~ ~ ~1 LootTable set value "minecraft:chests/buried_treasure" + +execute as @a[predicate=bktsb:dummy4,y_rotation=45..134] at @s run setblock ~-1 ~ ~ chest[facing=east] +execute as @a[predicate=bktsb:dummy4,y_rotation=45..134] at @s run data modify block ~-1 ~ ~ LootTable set value "minecraft:chests/buried_treasure" + +execute as @a[predicate=bktsb:dummy4,y_rotation=135..224] at @s run setblock ~ ~ ~-1 chest[facing=south] +execute as @a[predicate=bktsb:dummy4,y_rotation=135..224] at @s run data modify block ~ ~ ~-1 LootTable set value "minecraft:chests/buried_treasure" + +execute as @a[predicate=bktsb:dummy4,y_rotation=-135..-46] at @s run setblock ~1 ~ ~ chest[facing=west] +execute as @a[predicate=bktsb:dummy4,y_rotation=-135..-46] at @s run data modify block ~1 ~ ~ LootTable set value "minecraft:chests/buried_treasure" +recipe take @a[predicate=bktsb:dummy4] bktsb:dummy4 + +execute as @a[predicate=bktsb:dummy_amethyst] at @s run function bktsb:structgen/gen_amethyst +recipe take @a[predicate=bktsb:dummy_amethyst] bktsb:dummy_amethyst + +execute as @a[predicate=bktsb:dummy_dungeon] at @s run function bktsb:structgen/gen_dungeon +recipe take @a[predicate=bktsb:dummy_dungeon] bktsb:dummy_dungeon diff --git a/data/bktsb/functions/init.mcfunction b/data/bktsb/functions/init.mcfunction new file mode 100644 index 0000000..36dd5e1 --- /dev/null +++ b/data/bktsb/functions/init.mcfunction @@ -0,0 +1,19 @@ +scoreboard objectives add srand dummy +scoreboard objectives add randr dummy +scoreboard objectives add c dummy +scoreboard objectives add m dummy +scoreboard objectives add p dummy +scoreboard objectives add lim dummy +scoreboard objectives add genvar dummy +scoreboard objectives add booktrigger minecraft.used:minecraft.knowledge_book +scoreboard objectives add firstload dummy +scoreboard objectives add looper dummy +scoreboard objectives add loopstep dummy +scoreboard players set #a c 12345 +scoreboard players set #a m 1103515245 +scoreboard players set #a p 2147483647 +scoreboard players set #a srand 617274873 + +execute unless score #a firstload matches 1 run scoreboard players set #a firstload 0 +execute if score #a firstload matches 0 run function bktsb:starterisland +scoreboard players set #a testFirst 1 diff --git a/data/bktsb/functions/rng.mcfunction b/data/bktsb/functions/rng.mcfunction new file mode 100644 index 0000000..cf10912 --- /dev/null +++ b/data/bktsb/functions/rng.mcfunction @@ -0,0 +1,7 @@ +#set lim before using +scoreboard players operation #a srand *= #a m +scoreboard players operation #a srand += #a c +scoreboard players operation #a srand %= #a p +scoreboard players operation #a randr = #a srand +scoreboard players operation #a randr %= #a lim +#result in randr diff --git a/data/bktsb/functions/starterisland.mcfunction b/data/bktsb/functions/starterisland.mcfunction new file mode 100644 index 0000000..6b1565b --- /dev/null +++ b/data/bktsb/functions/starterisland.mcfunction @@ -0,0 +1,3 @@ +setworldspawn 0 67 0 -90 +setblock -3 65 -1 minecraft:structure_block{name:"bktsb:island",mode:"LOAD",ignoreEntities:1,rotation:"NONE"} replace +setblock -3 66 -1 minecraft:redstone_block diff --git a/data/bktsb/functions/structgen/gen_amethyst.mcfunction b/data/bktsb/functions/structgen/gen_amethyst.mcfunction new file mode 100644 index 0000000..f733f22 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_amethyst.mcfunction @@ -0,0 +1 @@ +function bktsb:structgen/helpers/amethyst/generate diff --git a/data/bktsb/functions/structgen/gen_bastion_east.mcfunction b/data/bktsb/functions/structgen/gen_bastion_east.mcfunction new file mode 100644 index 0000000..b4266b2 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_bastion_east.mcfunction @@ -0,0 +1,25 @@ +scoreboard players set #a lim 4 +function bktsb:rng +scoreboard players operation #a genvar = #a randr +#for debugging +#scoreboard players set #a genvar 0 + +#11 x 4 x 12, w x h x d +execute if score #a genvar matches 0 run setblock ~13 ~ ~-5 minecraft:structure_block{name:"bktsb:nether/bastion1",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_90"} replace +execute if score #a genvar matches 0 run setblock ~13 ~12 ~-5 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 0 run setblock ~13 ~1 ~-5 redstone_block + +#10 x 3 x 10 +execute if score #a genvar matches 1 run setblock ~11 ~ ~-5 minecraft:structure_block{name:"bktsb:nether/bastion2",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_90"} replace +execute if score #a genvar matches 1 run setblock ~11 ~12 ~-5 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 1 run setblock ~11 ~1 ~-5 redstone_block + +#11 x 5 x 11 +execute if score #a genvar matches 2 run setblock ~12 ~ ~-5 minecraft:structure_block{name:"bktsb:nether/bastion3",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_90"} replace +execute if score #a genvar matches 2 run setblock ~12 ~12 ~-5 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 2 run setblock ~12 ~1 ~-5 redstone_block + +#19 x 10 x 20 +execute if score #a genvar matches 3 run setblock ~21 ~ ~-9 minecraft:structure_block{name:"bktsb:nether/bastion4",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_90"} replace +execute if score #a genvar matches 3 run setblock ~21 ~12 ~-9 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 3 run setblock ~21 ~1 ~-9 redstone_block diff --git a/data/bktsb/functions/structgen/gen_bastion_north.mcfunction b/data/bktsb/functions/structgen/gen_bastion_north.mcfunction new file mode 100644 index 0000000..492ef0c --- /dev/null +++ b/data/bktsb/functions/structgen/gen_bastion_north.mcfunction @@ -0,0 +1,25 @@ +scoreboard players set #a lim 4 +function bktsb:rng +scoreboard players operation #a genvar = #a randr +#for debugging +#scoreboard players set #a genvar 0 + +#11 x 4 x 12, w x h x d +execute if score #a genvar matches 0 run setblock ~-5 ~ ~-13 minecraft:structure_block{name:"bktsb:nether/bastion1",mode:"LOAD",ignoreEntities:1,rotation:"NONE"} replace +execute if score #a genvar matches 0 run setblock ~-5 ~12 ~-13 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 0 run setblock ~-5 ~1 ~-13 redstone_block + +#10 x 3 x 10 +execute if score #a genvar matches 1 run setblock ~-5 ~ ~-11 minecraft:structure_block{name:"bktsb:nether/bastion2",mode:"LOAD",ignoreEntities:1,rotation:"NONE"} replace +execute if score #a genvar matches 1 run setblock ~-5 ~12 ~-11 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 1 run setblock ~-5 ~1 ~-11 redstone_block + +#11 x 5 x 11 +execute if score #a genvar matches 2 run setblock ~-5 ~ ~-12 minecraft:structure_block{name:"bktsb:nether/bastion3",mode:"LOAD",ignoreEntities:1,rotation:"NONE"} replace +execute if score #a genvar matches 2 run setblock ~-5 ~12 ~-12 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 2 run setblock ~-5 ~1 ~-12 redstone_block + +#19 x 10 x 20 +execute if score #a genvar matches 3 run setblock ~-9 ~ ~-21 minecraft:structure_block{name:"bktsb:nether/bastion4",mode:"LOAD",ignoreEntities:1,rotation:"NONE"} replace +execute if score #a genvar matches 3 run setblock ~-9 ~12 ~-21 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 3 run setblock ~-9 ~1 ~-21 redstone_block diff --git a/data/bktsb/functions/structgen/gen_bastion_south.mcfunction b/data/bktsb/functions/structgen/gen_bastion_south.mcfunction new file mode 100644 index 0000000..d031e21 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_bastion_south.mcfunction @@ -0,0 +1,25 @@ +scoreboard players set #a lim 4 +function bktsb:rng +scoreboard players operation #a genvar = #a randr +#for debugging +#scoreboard players set #a genvar 0 + +#11 x 4 x 12, w x h x d +execute if score #a genvar matches 0 run setblock ~5 ~ ~13 minecraft:structure_block{name:"bktsb:nether/bastion1",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_180"} replace +execute if score #a genvar matches 0 run setblock ~5 ~12 ~ minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 0 run setblock ~5 ~1 ~13 redstone_block + +#10 x 3 x 10 +execute if score #a genvar matches 1 run setblock ~5 ~ ~11 minecraft:structure_block{name:"bktsb:nether/bastion2",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_180"} replace +execute if score #a genvar matches 1 run setblock ~5 ~12 ~ minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 1 run setblock ~5 ~1 ~11 redstone_block + +#11 x 5 x 11 +execute if score #a genvar matches 2 run setblock ~5 ~ ~12 minecraft:structure_block{name:"bktsb:nether/bastion3",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_180"} replace +execute if score #a genvar matches 2 run setblock ~5 ~12 ~ minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 2 run setblock ~5 ~1 ~12 redstone_block + +#19 x 10 x 20 +execute if score #a genvar matches 3 run setblock ~9 ~ ~21 minecraft:structure_block{name:"bktsb:nether/bastion4",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_180"} replace +execute if score #a genvar matches 3 run setblock ~9 ~12 ~ minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 3 run setblock ~9 ~1 ~21 redstone_block diff --git a/data/bktsb/functions/structgen/gen_bastion_west.mcfunction b/data/bktsb/functions/structgen/gen_bastion_west.mcfunction new file mode 100644 index 0000000..4ff206f --- /dev/null +++ b/data/bktsb/functions/structgen/gen_bastion_west.mcfunction @@ -0,0 +1,25 @@ +scoreboard players set #a lim 4 +function bktsb:rng +scoreboard players operation #a genvar = #a randr +#for debugging +#scoreboard players set #a genvar 0 + +#11 x 4 x 12, w x h x d +execute if score #a genvar matches 0 run setblock ~-13 ~ ~5 minecraft:structure_block{name:"bktsb:nether/bastion1",mode:"LOAD",ignoreEntities:1,rotation:"COUNTERCLOCKWISE_90"} replace +execute if score #a genvar matches 0 run setblock ~-13 ~12 ~5 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 0 run setblock ~-13 ~1 ~5 redstone_block + +#10 x 3 x 10 +execute if score #a genvar matches 1 run setblock ~-11 ~ ~5 minecraft:structure_block{name:"bktsb:nether/bastion2",mode:"LOAD",ignoreEntities:1,rotation:"COUNTERCLOCKWISE_90"} replace +execute if score #a genvar matches 1 run setblock ~-11 ~12 ~5 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 1 run setblock ~-11 ~1 ~5 redstone_block + +#11 x 5 x 11 +execute if score #a genvar matches 2 run setblock ~-12 ~ ~5 minecraft:structure_block{name:"bktsb:nether/bastion3",mode:"LOAD",ignoreEntities:1,rotation:"COUNTERCLOCKWISE_90"} replace +execute if score #a genvar matches 2 run setblock ~-12 ~12 ~5 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 2 run setblock ~-12 ~1 ~5 redstone_block + +#19 x 10 x 20 +execute if score #a genvar matches 3 run setblock ~-21 ~ ~9 minecraft:structure_block{name:"bktsb:nether/bastion4",mode:"LOAD",ignoreEntities:1,rotation:"COUNTERCLOCKWISE_90"} replace +execute if score #a genvar matches 3 run setblock ~-21 ~12 ~9 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_bastion_helper",TrackOutput:0} +execute if score #a genvar matches 3 run setblock ~-21 ~1 ~9 redstone_block diff --git a/data/bktsb/functions/structgen/gen_dungeon.mcfunction b/data/bktsb/functions/structgen/gen_dungeon.mcfunction new file mode 100644 index 0000000..50ef606 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_dungeon.mcfunction @@ -0,0 +1,3 @@ +function bktsb:structgen/helpers/dungeon/room +execute positioned ~ ~-1 ~ if block ~ ~ ~ gold_block run function bktsb:structgen/helpers/dungeon/spawner +function bktsb:structgen/helpers/dungeon/loot diff --git a/data/bktsb/functions/structgen/gen_endship_east.mcfunction b/data/bktsb/functions/structgen/gen_endship_east.mcfunction new file mode 100644 index 0000000..0547a36 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_endship_east.mcfunction @@ -0,0 +1,4 @@ +#13 x 24 x 29, w x h x d +setblock ~30 ~ ~-6 minecraft:structure_block{name:"end_city/ship",mode:"LOAD",ignoreEntities:0,rotation:"CLOCKWISE_90"} replace +setblock ~30 ~30 ~-6 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_end_ship_east_helper",TrackOutput:0} +setblock ~30 ~1 ~-6 redstone_block diff --git a/data/bktsb/functions/structgen/gen_endship_north.mcfunction b/data/bktsb/functions/structgen/gen_endship_north.mcfunction new file mode 100644 index 0000000..7cde7f2 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_endship_north.mcfunction @@ -0,0 +1,4 @@ +#13 x 24 x 29, w x h x d +setblock ~-6 ~ ~-30 minecraft:structure_block{name:"end_city/ship",mode:"LOAD",ignoreEntities:0,rotation:"NONE"} replace +setblock ~-6 ~30 ~-30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_end_ship_north_helper",TrackOutput:0} +setblock ~-6 ~1 ~-30 redstone_block diff --git a/data/bktsb/functions/structgen/gen_endship_south.mcfunction b/data/bktsb/functions/structgen/gen_endship_south.mcfunction new file mode 100644 index 0000000..0499ac2 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_endship_south.mcfunction @@ -0,0 +1,4 @@ +#13 x 24 x 29, w x h x d +setblock ~6 ~ ~30 minecraft:structure_block{name:"end_city/ship",mode:"LOAD",ignoreEntities:0,rotation:"CLOCKWISE_180"} replace +setblock ~6 ~30 ~ minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_end_ship_south_helper",TrackOutput:0} +setblock ~6 ~1 ~30 redstone_block diff --git a/data/bktsb/functions/structgen/gen_endship_west.mcfunction b/data/bktsb/functions/structgen/gen_endship_west.mcfunction new file mode 100644 index 0000000..b83d94c --- /dev/null +++ b/data/bktsb/functions/structgen/gen_endship_west.mcfunction @@ -0,0 +1,4 @@ +#13 x 24 x 29, w x h x d +setblock ~-30 ~ ~6 minecraft:structure_block{name:"end_city/ship",mode:"LOAD",ignoreEntities:0,rotation:"COUNTERCLOCKWISE_90"} replace +setblock ~-30 ~30 ~6 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_end_ship_west_helper",TrackOutput:0} +setblock ~-30 ~1 ~6 redstone_block diff --git a/data/bktsb/functions/structgen/gen_fortressbalcony_east.mcfunction b/data/bktsb/functions/structgen/gen_fortressbalcony_east.mcfunction new file mode 100644 index 0000000..489efee --- /dev/null +++ b/data/bktsb/functions/structgen/gen_fortressbalcony_east.mcfunction @@ -0,0 +1,4 @@ +# 7 x 5 x 7 +setblock ~8 ~ ~3 minecraft:structure_block{name:"bktsb:nether/fortress",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_180"} replace +setblock ~8 ~12 ~3 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_generic_helper",TrackOutput:0} +setblock ~8 ~1 ~3 redstone_block diff --git a/data/bktsb/functions/structgen/gen_fortressbalcony_north.mcfunction b/data/bktsb/functions/structgen/gen_fortressbalcony_north.mcfunction new file mode 100644 index 0000000..f9c3028 --- /dev/null +++ b/data/bktsb/functions/structgen/gen_fortressbalcony_north.mcfunction @@ -0,0 +1,4 @@ +# 7 x 5 x 7 +setblock ~3 ~ ~-8 minecraft:structure_block{name:"bktsb:nether/fortress",mode:"LOAD",ignoreEntities:1,rotation:"CLOCKWISE_90"} replace +setblock ~3 ~12 ~ minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_generic_helper",TrackOutput:0} +setblock ~3 ~1 ~-8 redstone_block diff --git a/data/bktsb/functions/structgen/gen_fortressbalcony_south.mcfunction b/data/bktsb/functions/structgen/gen_fortressbalcony_south.mcfunction new file mode 100644 index 0000000..9418e6f --- /dev/null +++ b/data/bktsb/functions/structgen/gen_fortressbalcony_south.mcfunction @@ -0,0 +1,4 @@ +# 7 x 5 x 7 +setblock ~-3 ~ ~8 minecraft:structure_block{name:"bktsb:nether/fortress",mode:"LOAD",ignoreEntities:1,rotation:"COUNTERCLOCKWISE_90"} replace +setblock ~-3 ~12 ~ minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_generic_helper",TrackOutput:0} +setblock ~-3 ~1 ~8 redstone_block diff --git a/data/bktsb/functions/structgen/gen_fortressbalcony_west.mcfunction b/data/bktsb/functions/structgen/gen_fortressbalcony_west.mcfunction new file mode 100644 index 0000000..e5b791d --- /dev/null +++ b/data/bktsb/functions/structgen/gen_fortressbalcony_west.mcfunction @@ -0,0 +1,4 @@ +# 7 x 5 x 7 +setblock ~-8 ~ ~-3 minecraft:structure_block{name:"bktsb:nether/fortress",mode:"LOAD",ignoreEntities:1,rotation:"NONE"} replace +setblock ~-8 ~12 ~-3 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/gen_generic_helper",TrackOutput:0} +setblock ~-8 ~1 ~-3 redstone_block diff --git a/data/bktsb/functions/structgen/helpers/amethyst/cast_ray.mcfunction b/data/bktsb/functions/structgen/helpers/amethyst/cast_ray.mcfunction new file mode 100644 index 0000000..74ec2b3 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/amethyst/cast_ray.mcfunction @@ -0,0 +1,13 @@ +summon armor_stand ~ ~ ~ {Glowing:1,NoGravity:1} + +scoreboard players set #a lim 360 +function bktsb:rng +execute store result entity @e[type=armor_stand,sort=nearest,nbt={Glowing:1b},tag=!ame_rays,limit=1] Rotation[0] float 1.0 run scoreboard players get #a randr + +scoreboard players set #a lim 181 +function bktsb:rng +scoreboard players set #a lim 90 +scoreboard players operation #a randr -= #a lim +execute store result entity @e[type=armor_stand,sort=nearest,nbt={Glowing:1b},tag=!ame_rays,limit=1] Rotation[1] float 1.0 run scoreboard players get #a randr + +tag @e[type=armor_stand,sort=nearest,nbt={Glowing:1b},tag=!ame_rays,limit=1] add ame_rays diff --git a/data/bktsb/functions/structgen/helpers/amethyst/generate.mcfunction b/data/bktsb/functions/structgen/helpers/amethyst/generate.mcfunction new file mode 100644 index 0000000..19719a4 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/amethyst/generate.mcfunction @@ -0,0 +1,20 @@ +scoreboard players set #a genvar 0 +execute if block ~ ~-1 ~ diamond_block run scoreboard players set #a genvar 1 + +fill ~-11 ~-12 ~-11 ~11 ~11 ~11 air +kill @e[type=item,distance=..20,nbt={Item:{id:"minecraft:redstone"}}] +fill ~-11 ~-11 ~-11 ~11 ~11 ~11 redstone_wire +execute as @e[type=item,distance=..10,nbt={Item:{id:"minecraft:redstone"}}] at @s run setblock ~ ~ ~ smooth_basalt +execute as @e[type=item,distance=..9,nbt={Item:{id:"minecraft:redstone"}}] at @s run setblock ~ ~ ~ calcite +execute as @e[type=item,distance=..8,nbt={Item:{id:"minecraft:redstone"}}] at @s run setblock ~ ~ ~ amethyst_block +execute as @e[type=item,distance=..7,nbt={Item:{id:"minecraft:redstone"}}] at @s run setblock ~ ~ ~ air +kill @e[type=item,distance=..20,nbt={Item:{id:"minecraft:redstone"}}] + +scoreboard players set #a lim 24 +function bktsb:rng +scoreboard players operation #a looper = #a randr +scoreboard players set #a lim 16 +scoreboard players operation #a looper += #a lim +scoreboard players set #a loopstep 1 + +execute if score #a genvar matches 1.. run setblock ~ ~-1 ~ repeating_command_block{auto:1,Command:"function bktsb:structgen/helpers/amethyst/loop",TrackOutput:0} diff --git a/data/bktsb/functions/structgen/helpers/amethyst/loop.mcfunction b/data/bktsb/functions/structgen/helpers/amethyst/loop.mcfunction new file mode 100644 index 0000000..dcd7362 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/amethyst/loop.mcfunction @@ -0,0 +1,3 @@ +execute if score #a looper matches ..0 run setblock ~ ~ ~ amethyst_block +execute positioned ~ ~1 ~ if score #a looper matches 1.. run function bktsb:structgen/helpers/amethyst/cast_ray +execute if score #a looper matches 1.. run scoreboard players operation #a looper -= #a loopstep diff --git a/data/bktsb/functions/structgen/helpers/amethyst/ray_tick.mcfunction b/data/bktsb/functions/structgen/helpers/amethyst/ray_tick.mcfunction new file mode 100644 index 0000000..9dca97b --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/amethyst/ray_tick.mcfunction @@ -0,0 +1,4 @@ +execute as @e[type=armor_stand,tag=ame_rays] at @s run tp @s ^ ^ ^1 +execute as @e[type=armor_stand,tag=ame_rays] at @s if block ~ ~ ~ amethyst_block run setblock ~ ~ ~ budding_amethyst +execute as @e[type=armor_stand,tag=ame_rays] at @s if block ~ ~ ~ calcite run kill @s +execute as @e[type=armor_stand,tag=ame_rays] at @s if block ~ ~ ~ smooth_basalt run kill @s diff --git a/data/bktsb/functions/structgen/helpers/dungeon/loot.mcfunction b/data/bktsb/functions/structgen/helpers/dungeon/loot.mcfunction new file mode 100644 index 0000000..a7f0f2e --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/dungeon/loot.mcfunction @@ -0,0 +1,22 @@ +scoreboard players set #a lim 4 +function bktsb:rng + +execute if score #a randr matches 0 run setblock ~-3 ~-1 ~-2 chest[facing=east] +execute if score #a randr matches 0 run data merge block ~-3 ~-1 ~-2 {LootTable:"minecraft:chests/simple_dungeon"} +execute if score #a randr matches 0 run setblock ~-2 ~-1 ~-3 chest[facing=south] +execute if score #a randr matches 0 run data merge block ~-2 ~-1 ~-3 {LootTable:"minecraft:chests/abandoned_mineshaft"} + +execute if score #a randr matches 1 run setblock ~-3 ~-1 ~2 chest[facing=east] +execute if score #a randr matches 1 run data merge block ~-3 ~-1 ~2 {LootTable:"minecraft:chests/simple_dungeon"} +execute if score #a randr matches 1 run setblock ~-2 ~-1 ~3 chest[facing=north] +execute if score #a randr matches 1 run data merge block ~-2 ~-1 ~3 {LootTable:"minecraft:chests/abandoned_mineshaft"} + +execute if score #a randr matches 2 run setblock ~3 ~-1 ~-2 chest[facing=west] +execute if score #a randr matches 2 run data merge block ~3 ~-1 ~-2 {LootTable:"minecraft:chests/simple_dungeon"} +execute if score #a randr matches 2 run setblock ~2 ~-1 ~-3 chest[facing=south] +execute if score #a randr matches 2 run data merge block ~2 ~-1 ~-3 {LootTable:"minecraft:chests/abandoned_mineshaft"} + +execute if score #a randr matches 3 run setblock ~3 ~-1 ~2 chest[facing=west] +execute if score #a randr matches 3 run data merge block ~3 ~-1 ~2 {LootTable:"minecraft:chests/simple_dungeon"} +execute if score #a randr matches 3 run setblock ~2 ~-1 ~3 chest[facing=north] +execute if score #a randr matches 3 run data merge block ~2 ~-1 ~3 {LootTable:"minecraft:chests/abandoned_mineshaft"} diff --git a/data/bktsb/functions/structgen/helpers/dungeon/room.mcfunction b/data/bktsb/functions/structgen/helpers/dungeon/room.mcfunction new file mode 100644 index 0000000..1f7cd21 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/dungeon/room.mcfunction @@ -0,0 +1,4 @@ +fill ~-4 ~-2 ~-4 ~4 ~3 ~4 cobblestone outline +setblock ~-4 ~-2 ~-4 minecraft:structure_block{name:"bktsb:dungeon_base",mode:"LOAD",ignoreEntities:1,rotation:"NONE",integrity:0.5} replace +setblock ~-4 ~-1 ~-4 redstone_block +setblock ~-4 ~-0 ~-4 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/dungeon/room_callback",TrackOutput:0} diff --git a/data/bktsb/functions/structgen/helpers/dungeon/room_callback.mcfunction b/data/bktsb/functions/structgen/helpers/dungeon/room_callback.mcfunction new file mode 100644 index 0000000..8db59a6 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/dungeon/room_callback.mcfunction @@ -0,0 +1,2 @@ +fill ~ ~-2 ~ ~8 ~-2 ~8 cobblestone replace air +fill ~ ~ ~ ~ ~-2 ~ cobblestone diff --git a/data/bktsb/functions/structgen/helpers/dungeon/spawner.mcfunction b/data/bktsb/functions/structgen/helpers/dungeon/spawner.mcfunction new file mode 100644 index 0000000..043156c --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/dungeon/spawner.mcfunction @@ -0,0 +1,6 @@ +setblock ~ ~ ~ spawner +scoreboard players set #a lim 4 +function bktsb:rng +execute if score #a randr matches 0..1 run data merge block ~ ~ ~ {MaxNearbyEntities: 6s, RequiredPlayerRange: 16s, SpawnCount: 4s, SpawnData: {id: "minecraft:zombie"}, MaxSpawnDelay: 800s, Delay: 500s, SpawnRange: 4s, MinSpawnDelay: 200s, SpawnPotentials: [{Entity: {id: "minecraft:zombie"}, Weight: 1}]} +execute if score #a randr matches 2 run data merge block ~ ~ ~ {MaxNearbyEntities: 6s, RequiredPlayerRange: 16s, SpawnCount: 4s, SpawnData: {id: "minecraft:skeleton"}, MaxSpawnDelay: 800s, Delay: 500s, SpawnRange: 4s, MinSpawnDelay: 200s, SpawnPotentials: [{Entity: {id: "minecraft:skeleton"}, Weight: 1}]} +execute if score #a randr matches 3 run data merge block ~ ~ ~ {MaxNearbyEntities: 6s, RequiredPlayerRange: 16s, SpawnCount: 4s, SpawnData: {id: "minecraft:spider"}, MaxSpawnDelay: 800s, Delay: 500s, SpawnRange: 4s, MinSpawnDelay: 200s, SpawnPotentials: [{Entity: {id: "minecraft:spider"}, Weight: 1}]} diff --git a/data/bktsb/functions/structgen/helpers/gen_bastion_helper.mcfunction b/data/bktsb/functions/structgen/helpers/gen_bastion_helper.mcfunction new file mode 100644 index 0000000..acdb77e --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/gen_bastion_helper.mcfunction @@ -0,0 +1,29 @@ +fill ~ ~ ~ ~ ~-12 ~ minecraft:air replace minecraft:redstone_block +setblock ~ ~ ~ minecraft:air +fill ~-16 ~-10 ~-16 ~16 ~-9 ~16 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_bastion_common_loot_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"bastion_other"} +fill ~-20 ~-9 ~-20 ~20 ~-7 ~20 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_bastion_treasure_loot_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"bastion_treasure"} + +scoreboard players set #a lim 3 +function bktsb:rng + +execute if score #a randr matches 1.. run summon piglin_brute ~ ~ ~ +scoreboard players remove #a randr 1 +execute if score #a randr matches 1.. run summon piglin_brute ~ ~ ~ + +execute as @e[type=piglin_brute,distance=..50] run data merge entity @s {IsImmuneToZombification:1} + +scoreboard players set #a lim 5 +function bktsb:rng + +execute if score #a randr matches 1.. run summon piglin ~ ~ ~ +scoreboard players remove #a randr 1 +execute if score #a randr matches 1.. run summon piglin ~ ~ ~ +scoreboard players remove #a randr 1 +execute if score #a randr matches 1.. run summon piglin ~ ~ ~ +scoreboard players remove #a randr 1 +execute if score #a randr matches 1.. run summon piglin ~ ~ ~ + +execute as @e[type=piglin,distance=..50] run data merge entity @s {IsImmuneToZombification:1} + +spreadplayers ~ ~ 2 20 false @e[type=piglin_brute,distance=..50] +spreadplayers ~ ~ 2 20 false @e[type=piglin,distance=..50] diff --git a/data/bktsb/functions/structgen/helpers/gen_end_ship_east_helper.mcfunction b/data/bktsb/functions/structgen/helpers/gen_end_ship_east_helper.mcfunction new file mode 100644 index 0000000..c791e15 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/gen_end_ship_east_helper.mcfunction @@ -0,0 +1,5 @@ +fill ~ ~ ~ ~ ~-29 ~ minecraft:air replace minecraft:redstone_block +setblock ~ ~ ~ minecraft:air +fill ~0 ~-25 ~-30 ~-30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_endship_loot_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Chest"} +fill ~0 ~-25 ~-30 ~-30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_elytra_west_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Elytra"} +fill ~0 ~-29 ~-30 ~-30 ~-18 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/summon_shulker_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Sentry"} diff --git a/data/bktsb/functions/structgen/helpers/gen_end_ship_north_helper.mcfunction b/data/bktsb/functions/structgen/helpers/gen_end_ship_north_helper.mcfunction new file mode 100644 index 0000000..15be5d9 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/gen_end_ship_north_helper.mcfunction @@ -0,0 +1,5 @@ +fill ~ ~ ~ ~ ~-29 ~ minecraft:air replace minecraft:redstone_block +setblock ~ ~ ~ minecraft:air +fill ~-30 ~-25 ~0 ~30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_endship_loot_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Chest"} +fill ~-30 ~-25 ~0 ~30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_elytra_south_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Elytra"} +fill ~-30 ~-29 ~0 ~30 ~-18 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/summon_shulker_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Sentry"} diff --git a/data/bktsb/functions/structgen/helpers/gen_end_ship_south_helper.mcfunction b/data/bktsb/functions/structgen/helpers/gen_end_ship_south_helper.mcfunction new file mode 100644 index 0000000..ae08db9 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/gen_end_ship_south_helper.mcfunction @@ -0,0 +1,5 @@ +fill ~ ~ ~ ~ ~-29 ~ minecraft:air replace minecraft:redstone_block +setblock ~ ~ ~ minecraft:air +fill ~-30 ~-25 ~0 ~30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_endship_loot_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Chest"} +fill ~-30 ~-25 ~0 ~30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_elytra_north_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Elytra"} +fill ~-30 ~-29 ~0 ~30 ~-18 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/summon_shulker_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Sentry"} diff --git a/data/bktsb/functions/structgen/helpers/gen_end_ship_west_helper.mcfunction b/data/bktsb/functions/structgen/helpers/gen_end_ship_west_helper.mcfunction new file mode 100644 index 0000000..a9fdfaf --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/gen_end_ship_west_helper.mcfunction @@ -0,0 +1,5 @@ +fill ~ ~ ~ ~ ~-29 ~ minecraft:air replace minecraft:redstone_block +setblock ~ ~ ~ minecraft:air +fill ~0 ~-25 ~-30 ~30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_endship_loot_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Chest"} +fill ~0 ~-25 ~-30 ~30 ~-24 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/place_elytra_east_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Elytra"} +fill ~0 ~-29 ~-30 ~30 ~-18 ~30 minecraft:command_block{auto:1,Command:"function bktsb:structgen/helpers/summon_shulker_and_vanish",TrackOutput:0} replace minecraft:structure_block{metadata:"Sentry"} diff --git a/data/bktsb/functions/structgen/helpers/gen_generic_helper.mcfunction b/data/bktsb/functions/structgen/helpers/gen_generic_helper.mcfunction new file mode 100644 index 0000000..931d0a5 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/gen_generic_helper.mcfunction @@ -0,0 +1,2 @@ +fill ~ ~ ~ ~ ~-12 ~ minecraft:air replace minecraft:redstone_block +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/place_bastion_common_loot_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/place_bastion_common_loot_and_vanish.mcfunction new file mode 100644 index 0000000..2e3c599 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/place_bastion_common_loot_and_vanish.mcfunction @@ -0,0 +1,2 @@ +data modify block ~ ~-1 ~ LootTable set value "minecraft:chests/bastion_other" +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/place_bastion_treasure_loot_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/place_bastion_treasure_loot_and_vanish.mcfunction new file mode 100644 index 0000000..eebe605 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/place_bastion_treasure_loot_and_vanish.mcfunction @@ -0,0 +1,2 @@ +data modify block ~ ~-1 ~ LootTable set value "minecraft:chests/bastion_treasure" +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/place_elytra_east_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/place_elytra_east_and_vanish.mcfunction new file mode 100644 index 0000000..f990cd5 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/place_elytra_east_and_vanish.mcfunction @@ -0,0 +1,2 @@ +summon minecraft:item_frame ~ ~ ~ {Facing:5,Item:{id:"minecraft:elytra",Count:1}} +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/place_elytra_north_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/place_elytra_north_and_vanish.mcfunction new file mode 100644 index 0000000..1562eff --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/place_elytra_north_and_vanish.mcfunction @@ -0,0 +1,2 @@ +summon minecraft:item_frame ~ ~ ~ {Facing:2,Item:{id:"minecraft:elytra",Count:1}} +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/place_elytra_south_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/place_elytra_south_and_vanish.mcfunction new file mode 100644 index 0000000..0f67b21 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/place_elytra_south_and_vanish.mcfunction @@ -0,0 +1,2 @@ +summon minecraft:item_frame ~ ~ ~ {Facing:3,Item:{id:"minecraft:elytra",Count:1}} +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/place_elytra_west_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/place_elytra_west_and_vanish.mcfunction new file mode 100644 index 0000000..a691b3a --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/place_elytra_west_and_vanish.mcfunction @@ -0,0 +1,2 @@ +summon minecraft:item_frame ~ ~ ~ {Facing:4,Item:{id:"minecraft:elytra",Count:1}} +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/place_endship_loot_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/place_endship_loot_and_vanish.mcfunction new file mode 100644 index 0000000..f04df2d --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/place_endship_loot_and_vanish.mcfunction @@ -0,0 +1,2 @@ +data modify block ~ ~-1 ~ LootTable set value "minecraft:chests/end_city_treasure" +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/structgen/helpers/summon_shulker_and_vanish.mcfunction b/data/bktsb/functions/structgen/helpers/summon_shulker_and_vanish.mcfunction new file mode 100644 index 0000000..e2384d9 --- /dev/null +++ b/data/bktsb/functions/structgen/helpers/summon_shulker_and_vanish.mcfunction @@ -0,0 +1,2 @@ +summon minecraft:shulker ~ ~ ~ {Color:16} +setblock ~ ~ ~ minecraft:air diff --git a/data/bktsb/functions/summontrader.mcfunction b/data/bktsb/functions/summontrader.mcfunction new file mode 100644 index 0000000..f3d3cc6 --- /dev/null +++ b/data/bktsb/functions/summontrader.mcfunction @@ -0,0 +1,6 @@ +summon wandering_trader ~ ~ ~ +data modify entity @e[type=minecraft:wandering_trader,limit=1,sort=nearest] DespawnDelay set value 48000 +summon trader_llama ~ ~ ~ +summon trader_llama ~ ~ ~ +execute as @e[type=minecraft:trader_llama,limit=2,sort=nearest] run data modify entity @s DespawnDelay set value 48000 +execute as @e[type=minecraft:trader_llama,limit=2,sort=nearest] run data modify entity @s Leash.UUID set from entity @e[type=minecraft:wandering_trader,limit=1] UUID diff --git a/data/bktsb/functions/tradecycle.mcfunction b/data/bktsb/functions/tradecycle.mcfunction new file mode 100644 index 0000000..87c5777 --- /dev/null +++ b/data/bktsb/functions/tradecycle.mcfunction @@ -0,0 +1,7 @@ +execute as @e[type=minecraft:trader_llama,distance=..8,limit=2,sort=nearest] run data modify entity @s Leash set value {} +summon minecraft:wandering_trader ~ ~ ~ +data modify entity @s Silent set value 1 +kill @s +# original @s no longer valid +execute as @e[type=minecraft:wandering_trader,limit=1,sort=nearest] at @s run data modify entity @s DespawnDelay set from entity @e[type=minecraft:trader_llama,distance=..8,limit=1,sort=nearest] DespawnDelay +execute as @e[type=minecraft:trader_llama,distance=..8,limit=2,sort=nearest] run data modify entity @s Leash.UUID set from entity @e[type=minecraft:wandering_trader,limit=1,sort=nearest] UUID diff --git a/data/bktsb/functions/tradertrades.mcfunction b/data/bktsb/functions/tradertrades.mcfunction new file mode 100644 index 0000000..a4b4132 --- /dev/null +++ b/data/bktsb/functions/tradertrades.mcfunction @@ -0,0 +1,55 @@ +##################################### RANDOM STUFF ##################################### +scoreboard players set #a lim 6 +function bktsb:rng + +execute if score #a randr matches 0 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:16,buy:{id:"minecraft:emerald",Count:3},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:cocoa_beans",Count:1}} + +execute if score #a randr matches 1 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:16,buy:{id:"minecraft:emerald",Count:9},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:cobweb",Count:16}} + +execute if score #a randr matches 2 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:16,buy:{id:"minecraft:emerald",Count:5},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:sweet_berries",Count:1}} + +execute if score #a randr matches 3 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:16,buy:{id:"minecraft:emerald_block",Count:3},buyB:{id:"minecraft:netherrack",Count:1},sell:{id:"minecraft:crimson_nylium",Count:1}} + +execute if score #a randr matches 4 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:16,buy:{id:"minecraft:emerald_block",Count:3},buyB:{id:"minecraft:netherrack",Count:1},sell:{id:"minecraft:warped_nylium",Count:1}} + +execute if score #a randr matches 5 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:16,buy:{id:"minecraft:emerald",Count:5},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:glow_lichen",Count:1}} +##################################### DOUBLE FLOWERS ##################################### +scoreboard players set #a lim 5 +function bktsb:rng + +execute if score #a randr matches 0 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:8,buy:{id:"minecraft:emerald",Count:3},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:sunflower",Count:1}} + +execute if score #a randr matches 1 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:8,buy:{id:"minecraft:emerald",Count:3},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:lilac",Count:1}} + +execute if score #a randr matches 2 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:8,buy:{id:"minecraft:emerald",Count:3},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:rose_bush",Count:1}} + +execute if score #a randr matches 3 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:8,buy:{id:"minecraft:emerald",Count:3},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:peony",Count:1}} + +execute if score #a randr matches 4 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:8,buy:{id:"minecraft:stone",Count:64},buyB:{id:"minecraft:charcoal",Count:9},sell:{id:"minecraft:lava_bucket",Count:1}} + +##################################### VALUABLE STUFF ##################################### + +scoreboard players set #a lim 6 +function bktsb:rng + +execute if score #a randr matches 0 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:1,buy:{id:"minecraft:emerald",Count:30},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:knowledge_book",Count:1,tag:{Recipes:["bktsb:dummy_amethyst"],display:{Name:"{\"text\":\"Geode in a Book\",\"color\":\"#FF00FF\"}"},Enchantments:[{}]}}} + +execute if score #a randr matches 1 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:1,buy:{id:"minecraft:ender_chest",Count:30},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:knowledge_book",Count:1,tag:{Recipes:["bktsb:dummy1"],display:{Name:"{\"text\":\"End City Ship in a Book\",\"color\":\"#FF00FF\"}"},Enchantments:[{}]}}} + +execute if score #a randr matches 2 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:1,buy:{id:"minecraft:netherite_ingot",Count:30},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:knowledge_book",Count:1,tag:{Recipes:["bktsb:dummy2"],display:{Name:"{\"text\":\"Bastion in a Book\",\"color\":\"#FF00FF\"}"},Enchantments:[{}]}}} + +execute if score #a randr matches 3 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:1,buy:{id:"minecraft:obsidian",Count:30},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:knowledge_book",Count:1,tag:{Recipes:["bktsb:dummy3"],display:{Name:"{\"text\":\"Fortress in a Book\",\"color\":\"#FF00FF\"}"},Enchantments:[{}]}}} + +execute if score #a randr matches 4 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:1,buy:{id:"minecraft:diamond",Count:30},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:knowledge_book",Count:1,tag:{Recipes:["bktsb:dummy4"],display:{Name:"{\"text\":\"Buried Treasure in a Book\",\"color\":\"#FF00FF\"}"},Enchantments:[{}]}}} + +execute if score #a randr matches 5 run data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:1,buy:{id:"minecraft:golden_apple",Count:30},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:knowledge_book",Count:1,tag:{Recipes:["bktsb:dummy_dungeon"],display:{Name:"{\"text\":\"Dungeon in a Book\",\"color\":\"#FF00FF\"}"},Enchantments:[{}]}}} + +##################################### TRADE CYCLING ##################################### + +data modify entity @e[type=minecraft:wandering_trader,tag=!trade_added,limit=1] Offers.Recipes append value {maxUses:1,buy:{id:"minecraft:emerald_block",Count:30},buyB:{id:"minecraft:air",Count:1},sell:{id:"minecraft:written_book",Count:1,tag:{author:"wandering trader",title:"my wills",display:{Name:"{\"text\":\"Cycle Trades\",\"color\":\"#FF0000\"}"},pages:[],Enchantments:[{}]}}} + +execute as @e[type=minecraft:wandering_trader,tag=!trade_added] run tellraw @a ["",{"text":"A wild wandering trader appeared at ","color":"green"},{"nbt":"Pos","entity":"@s"},{"text":" !","color":"green"}] +execute as @e[type=minecraft:wandering_trader,tag=!trade_added] run playsound minecraft:entity.player.levelup neutral @a ~ ~ ~ 1000000 +tag @e[type=minecraft:wandering_trader,tag=!trade_added] add trade_added + +execute as @e[type=minecraft:wandering_trader,limit=1,nbt={Offers:{Recipes:[{sell:{id:"minecraft:written_book",Count:1b,tag:{author:"wandering trader",title:"my wills",display:{Name:"{\"text\":\"Cycle Trades\",\"color\":\"#FF0000\"}"},pages:[],Enchantments:[{}]}},uses:1}]}}] at @s run function bktsb:tradecycle diff --git a/data/bktsb/predicates/dummy1.json b/data/bktsb/predicates/dummy1.json new file mode 100644 index 0000000..be61896 --- /dev/null +++ b/data/bktsb/predicates/dummy1.json @@ -0,0 +1,7 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "player": {"recipes": {"bktsb:dummy1": true} } + } +} diff --git a/data/bktsb/predicates/dummy2.json b/data/bktsb/predicates/dummy2.json new file mode 100644 index 0000000..531dcaf --- /dev/null +++ b/data/bktsb/predicates/dummy2.json @@ -0,0 +1,7 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "player": {"recipes": {"bktsb:dummy2": true} } + } +} diff --git a/data/bktsb/predicates/dummy3.json b/data/bktsb/predicates/dummy3.json new file mode 100644 index 0000000..73fd40e --- /dev/null +++ b/data/bktsb/predicates/dummy3.json @@ -0,0 +1,7 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "player": {"recipes": {"bktsb:dummy3": true} } + } +} diff --git a/data/bktsb/predicates/dummy4.json b/data/bktsb/predicates/dummy4.json new file mode 100644 index 0000000..a3638e5 --- /dev/null +++ b/data/bktsb/predicates/dummy4.json @@ -0,0 +1,7 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "player": {"recipes": {"bktsb:dummy4": true} } + } +} diff --git a/data/bktsb/predicates/dummy_amethyst.json b/data/bktsb/predicates/dummy_amethyst.json new file mode 100644 index 0000000..d69fb5d --- /dev/null +++ b/data/bktsb/predicates/dummy_amethyst.json @@ -0,0 +1,7 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "player": {"recipes": {"bktsb:dummy_amethyst": true} } + } +} diff --git a/data/bktsb/predicates/dummy_dungeon.json b/data/bktsb/predicates/dummy_dungeon.json new file mode 100644 index 0000000..368d763 --- /dev/null +++ b/data/bktsb/predicates/dummy_dungeon.json @@ -0,0 +1,7 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "player": {"recipes": {"bktsb:dummy_dungeon": true} } + } +} diff --git a/data/bktsb/recipes/braincoralblock.json b/data/bktsb/recipes/braincoralblock.json new file mode 100644 index 0000000..057ded7 --- /dev/null +++ b/data/bktsb/recipes/braincoralblock.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "item": "minecraft:brain_coral" + } + }, + "result": { + "item": "minecraft:brain_coral_block" + } +} diff --git a/data/bktsb/recipes/bubblecoralblock.json b/data/bktsb/recipes/bubblecoralblock.json new file mode 100644 index 0000000..4185bda --- /dev/null +++ b/data/bktsb/recipes/bubblecoralblock.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "item": "minecraft:bubble_coral" + } + }, + "result": { + "item": "minecraft:bubble_coral_block" + } +} diff --git a/data/bktsb/recipes/coalore.json b/data/bktsb/recipes/coalore.json new file mode 100644 index 0000000..73433c9 --- /dev/null +++ b/data/bktsb/recipes/coalore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:coal_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:coal_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/copperore.json b/data/bktsb/recipes/copperore.json new file mode 100644 index 0000000..380bbfe --- /dev/null +++ b/data/bktsb/recipes/copperore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:copper_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:copper_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslatecoalore.json b/data/bktsb/recipes/deepslatecoalore.json new file mode 100644 index 0000000..f5f46a7 --- /dev/null +++ b/data/bktsb/recipes/deepslatecoalore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:coal_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_coal_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslatecopperore.json b/data/bktsb/recipes/deepslatecopperore.json new file mode 100644 index 0000000..08e6999 --- /dev/null +++ b/data/bktsb/recipes/deepslatecopperore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:copper_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_copper_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslatediamondore.json b/data/bktsb/recipes/deepslatediamondore.json new file mode 100644 index 0000000..fcf405e --- /dev/null +++ b/data/bktsb/recipes/deepslatediamondore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:diamond_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_diamond_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslateemeraldore.json b/data/bktsb/recipes/deepslateemeraldore.json new file mode 100644 index 0000000..0c6ec1c --- /dev/null +++ b/data/bktsb/recipes/deepslateemeraldore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:emerald_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_emerald_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslategoldore.json b/data/bktsb/recipes/deepslategoldore.json new file mode 100644 index 0000000..08fbe6d --- /dev/null +++ b/data/bktsb/recipes/deepslategoldore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:gold_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_gold_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslateironore.json b/data/bktsb/recipes/deepslateironore.json new file mode 100644 index 0000000..246f391 --- /dev/null +++ b/data/bktsb/recipes/deepslateironore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:iron_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_iron_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslatelapisore.json b/data/bktsb/recipes/deepslatelapisore.json new file mode 100644 index 0000000..82d02c3 --- /dev/null +++ b/data/bktsb/recipes/deepslatelapisore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:lapis_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_lapis_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/deepslateredstore.json b/data/bktsb/recipes/deepslateredstore.json new file mode 100644 index 0000000..2f4a75a --- /dev/null +++ b/data/bktsb/recipes/deepslateredstore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:redstone_block" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + }, + { + "item": "minecraft:deepslate" + } + ], + "result": { + "item": "minecraft:deepslate_redstone_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/diamondore.json b/data/bktsb/recipes/diamondore.json new file mode 100644 index 0000000..ead29be --- /dev/null +++ b/data/bktsb/recipes/diamondore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:diamond_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:diamond_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/dummy1.json b/data/bktsb/recipes/dummy1.json new file mode 100644 index 0000000..cdd69ff --- /dev/null +++ b/data/bktsb/recipes/dummy1.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "dd" + ], + "key": { + "d": { + "item": "minecraft:debug_stick" + } + }, + "result": { + "item": "minecraft:debug_stick", + "count": 1 + }, + "group": "dummy" +} diff --git a/data/bktsb/recipes/dummy2.json b/data/bktsb/recipes/dummy2.json new file mode 100644 index 0000000..17bd38f --- /dev/null +++ b/data/bktsb/recipes/dummy2.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ddd" + ], + "key": { + "d": { + "item": "minecraft:debug_stick" + } + }, + "result": { + "item": "minecraft:debug_stick", + "count": 1 + }, + "group": "dummy" +} diff --git a/data/bktsb/recipes/dummy3.json b/data/bktsb/recipes/dummy3.json new file mode 100644 index 0000000..636541b --- /dev/null +++ b/data/bktsb/recipes/dummy3.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ddd", + " d " + ], + "key": { + "d": { + "item": "minecraft:debug_stick" + } + }, + "result": { + "item": "minecraft:debug_stick", + "count": 1 + }, + "group": "dummy" +} diff --git a/data/bktsb/recipes/dummy4.json b/data/bktsb/recipes/dummy4.json new file mode 100644 index 0000000..cbee78a --- /dev/null +++ b/data/bktsb/recipes/dummy4.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ddd", + "dd " + ], + "key": { + "d": { + "item": "minecraft:debug_stick" + } + }, + "result": { + "item": "minecraft:debug_stick", + "count": 1 + }, + "group": "dummy" +} diff --git a/data/bktsb/recipes/dummy_amethyst.json b/data/bktsb/recipes/dummy_amethyst.json new file mode 100644 index 0000000..1d56a7d --- /dev/null +++ b/data/bktsb/recipes/dummy_amethyst.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ddd", + "ddd" + ], + "key": { + "d": { + "item": "minecraft:debug_stick" + } + }, + "result": { + "item": "minecraft:debug_stick", + "count": 1 + }, + "group": "dummy" +} diff --git a/data/bktsb/recipes/dummy_dungeon.json b/data/bktsb/recipes/dummy_dungeon.json new file mode 100644 index 0000000..ace3944 --- /dev/null +++ b/data/bktsb/recipes/dummy_dungeon.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ddd", + "ddd", + "d " + ], + "key": { + "d": { + "item": "minecraft:debug_stick" + } + }, + "result": { + "item": "minecraft:debug_stick", + "count": 1 + }, + "group": "dummy" +} diff --git a/data/bktsb/recipes/egapple.json b/data/bktsb/recipes/egapple.json new file mode 100644 index 0000000..3412f1d --- /dev/null +++ b/data/bktsb/recipes/egapple.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "item": "minecraft:gold_block" + }, + "X": { + "item": "minecraft:apple" + } + }, + "result": { + "item": "minecraft:enchanted_golden_apple" + } +} diff --git a/data/bktsb/recipes/emeraldore.json b/data/bktsb/recipes/emeraldore.json new file mode 100644 index 0000000..62dc6c1 --- /dev/null +++ b/data/bktsb/recipes/emeraldore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:emerald_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:emerald_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/endstone.json b/data/bktsb/recipes/endstone.json new file mode 100644 index 0000000..1fa2804 --- /dev/null +++ b/data/bktsb/recipes/endstone.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "eXe", + "###" + ], + "key": { + "#": { + "item": "minecraft:cobblestone" + }, + "X": { + "item": "minecraft:ender_pearl" + }, + "e": { + "item": "minecraft:egg" + } + }, + "result": { + "item": "minecraft:end_stone", + "count": 6 + } +} diff --git a/data/bktsb/recipes/firecoralblock.json b/data/bktsb/recipes/firecoralblock.json new file mode 100644 index 0000000..63768a8 --- /dev/null +++ b/data/bktsb/recipes/firecoralblock.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "item": "minecraft:fire_coral" + } + }, + "result": { + "item": "minecraft:fire_coral_block" + } +} diff --git a/data/bktsb/recipes/gildedblackst.json b/data/bktsb/recipes/gildedblackst.json new file mode 100644 index 0000000..c25e60f --- /dev/null +++ b/data/bktsb/recipes/gildedblackst.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "item": "minecraft:blackstone" + }, + "X": { + "item": "minecraft:gold_ingot" + } + }, + "result": { + "item": "minecraft:gilded_blackstone", + "count": 6 + } +} diff --git a/data/bktsb/recipes/goldore.json b/data/bktsb/recipes/goldore.json new file mode 100644 index 0000000..65de1c6 --- /dev/null +++ b/data/bktsb/recipes/goldore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:gold_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:gold_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/horncoralblock.json b/data/bktsb/recipes/horncoralblock.json new file mode 100644 index 0000000..28f8a55 --- /dev/null +++ b/data/bktsb/recipes/horncoralblock.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "item": "minecraft:horn_coral" + } + }, + "result": { + "item": "minecraft:horn_coral_block" + } +} diff --git a/data/bktsb/recipes/ironore.json b/data/bktsb/recipes/ironore.json new file mode 100644 index 0000000..6531c28 --- /dev/null +++ b/data/bktsb/recipes/ironore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:iron_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:iron_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/lapisore.json b/data/bktsb/recipes/lapisore.json new file mode 100644 index 0000000..bb6b775 --- /dev/null +++ b/data/bktsb/recipes/lapisore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:lapis_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:lapis_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/nethergoldore.json b/data/bktsb/recipes/nethergoldore.json new file mode 100644 index 0000000..523f908 --- /dev/null +++ b/data/bktsb/recipes/nethergoldore.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "item": "minecraft:netherrack" + }, + "X": { + "item": "minecraft:gold_block" + } + }, + "result": { + "item": "minecraft:nether_gold_ore", + "count": 8 + } +} diff --git a/data/bktsb/recipes/quartzore.json b/data/bktsb/recipes/quartzore.json new file mode 100644 index 0000000..5019210 --- /dev/null +++ b/data/bktsb/recipes/quartzore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:quartz_block" + }, + { + "item": "minecraft:netherrack" + }, + { + "item": "minecraft:netherrack" + } + ], + "result": { + "item": "minecraft:nether_quartz_ore", + "count": 2 + } +} diff --git a/data/bktsb/recipes/redsand.json b/data/bktsb/recipes/redsand.json new file mode 100644 index 0000000..3394856 --- /dev/null +++ b/data/bktsb/recipes/redsand.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "item": "minecraft:sand" + }, + "X": { + "item": "minecraft:rotten_flesh" + } + }, + "result": { + "item": "minecraft:red_sand", + "count": 8 + } +} diff --git a/data/bktsb/recipes/redstore.json b/data/bktsb/recipes/redstore.json new file mode 100644 index 0000000..7bf5b9d --- /dev/null +++ b/data/bktsb/recipes/redstore.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:redstone_block" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + } + ], + "result": { + "item": "minecraft:redstone_ore", + "count": 3 + } +} diff --git a/data/bktsb/recipes/soulsoil.json b/data/bktsb/recipes/soulsoil.json new file mode 100644 index 0000000..ebf05e9 --- /dev/null +++ b/data/bktsb/recipes/soulsoil.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "sd", + "ds" + ], + "key": { + "d": { + "item": "minecraft:dirt" + }, + "s": { + "item": "minecraft:soul_sand" + } + }, + "result": { + "item": "minecraft:soul_soil", + "count": 4 + } +} diff --git a/data/bktsb/recipes/tubecoralblock.json b/data/bktsb/recipes/tubecoralblock.json new file mode 100644 index 0000000..d41d1cb --- /dev/null +++ b/data/bktsb/recipes/tubecoralblock.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "item": "minecraft:tube_coral" + } + }, + "result": { + "item": "minecraft:tube_coral_block" + } +} diff --git a/data/bktsb/structures/dungeon_base.nbt b/data/bktsb/structures/dungeon_base.nbt Binary files differnew file mode 100644 index 0000000..cb0a3d8 --- /dev/null +++ b/data/bktsb/structures/dungeon_base.nbt diff --git a/data/bktsb/structures/island.nbt b/data/bktsb/structures/island.nbt Binary files differnew file mode 100644 index 0000000..e893d2a --- /dev/null +++ b/data/bktsb/structures/island.nbt diff --git a/data/bktsb/structures/nether/bastion1.nbt b/data/bktsb/structures/nether/bastion1.nbt Binary files differnew file mode 100644 index 0000000..ada71db --- /dev/null +++ b/data/bktsb/structures/nether/bastion1.nbt diff --git a/data/bktsb/structures/nether/bastion2.nbt b/data/bktsb/structures/nether/bastion2.nbt Binary files differnew file mode 100644 index 0000000..6a5f470 --- /dev/null +++ b/data/bktsb/structures/nether/bastion2.nbt diff --git a/data/bktsb/structures/nether/bastion3.nbt b/data/bktsb/structures/nether/bastion3.nbt Binary files differnew file mode 100644 index 0000000..be42e2f --- /dev/null +++ b/data/bktsb/structures/nether/bastion3.nbt diff --git a/data/bktsb/structures/nether/bastion4.nbt b/data/bktsb/structures/nether/bastion4.nbt Binary files differnew file mode 100644 index 0000000..a09dd6a --- /dev/null +++ b/data/bktsb/structures/nether/bastion4.nbt diff --git a/data/bktsb/structures/nether/fortress.nbt b/data/bktsb/structures/nether/fortress.nbt Binary files differnew file mode 100644 index 0000000..688e8c8 --- /dev/null +++ b/data/bktsb/structures/nether/fortress.nbt diff --git a/data/minecraft/dimension_type/overworld.json b/data/minecraft/dimension_type/overworld.json new file mode 100644 index 0000000..9b21a4a --- /dev/null +++ b/data/minecraft/dimension_type/overworld.json @@ -0,0 +1,17 @@ +{ + "logical_height": 384, + "infiniburn": "minecraft:infiniburn_overworld", + "effects": "minecraft:overworld", + "ambient_light": 0.0, + "respawn_anchor_works": false, + "has_raids": true, + "min_y": -64, + "height": 384, + "natural": true, + "coordinate_scale": 1.0, + "piglin_safe": false, + "bed_works": true, + "has_skylight": true, + "has_ceiling": false, + "ultrawarm": false +}
\ No newline at end of file diff --git a/data/minecraft/dimension_type/overworld_caves.json b/data/minecraft/dimension_type/overworld_caves.json new file mode 100644 index 0000000..f4ea040 --- /dev/null +++ b/data/minecraft/dimension_type/overworld_caves.json @@ -0,0 +1,17 @@ +{ + "logical_height": 384, + "infiniburn": "minecraft:infiniburn_overworld", + "effects": "minecraft:overworld", + "ambient_light": 0.0, + "respawn_anchor_works": false, + "has_raids": true, + "min_y": -64, + "height": 384, + "natural": true, + "coordinate_scale": 1.0, + "piglin_safe": false, + "bed_works": true, + "has_skylight": true, + "has_ceiling": true, + "ultrawarm": false +}
\ No newline at end of file diff --git a/data/minecraft/loot_tables/chests/end_city_treasure.json b/data/minecraft/loot_tables/chests/end_city_treasure.json new file mode 100644 index 0000000..172fdfe --- /dev/null +++ b/data/minecraft/loot_tables/chests/end_city_treasure.json @@ -0,0 +1,345 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "rolls": { + "min": 2.0, + "max": 6.0, + "type": "minecraft:uniform" + }, + "entries": [ + { + "type": "minecraft:item", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2.0, + "max": 7.0, + "type": "minecraft:uniform" + } + } + ], + "name": "minecraft:diamond" + }, + { + "type": "minecraft:item", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 4.0, + "max": 8.0, + "type": "minecraft:uniform" + } + } + ], + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "weight": 15, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2.0, + "max": 7.0, + "type": "minecraft:uniform" + } + } + ], + "name": "minecraft:gold_ingot" + }, + { + "type": "minecraft:item", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1.0, + "max": 4.0, + "type": "minecraft:uniform" + } + } + ], + "name": "minecraft:chorus_flower" + }, + { + "type": "minecraft:item", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2.0, + "max": 6.0, + "type": "minecraft:uniform" + } + } + ], + "name": "minecraft:emerald" + }, + { + "type": "minecraft:item", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1.0, + "max": 10.0, + "type": "minecraft:uniform" + } + } + ], + "name": "minecraft:beetroot_seeds" + }, + { + "type": "minecraft:item", + "weight": 3, + "name": "minecraft:saddle" + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_horse_armor" + }, + { + "type": "minecraft:item", + "name": "minecraft:golden_horse_armor" + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_horse_armor" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:diamond_sword" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:diamond_boots" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:diamond_chestplate" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:diamond_leggings" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:diamond_helmet" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:diamond_pickaxe" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:diamond_shovel" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:iron_sword" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:iron_boots" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:iron_chestplate" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:iron_leggings" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:iron_helmet" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:iron_pickaxe" + }, + { + "type": "minecraft:item", + "weight": 3, + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": { + "min": 20.0, + "max": 39.0, + "type": "minecraft:uniform" + }, + "treasure": true + } + ], + "name": "minecraft:iron_shovel" + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/blaze.json b/data/minecraft/loot_tables/entities/blaze.json new file mode 100644 index 0000000..c9897f2 --- /dev/null +++ b/data/minecraft/loot_tables/entities/blaze.json @@ -0,0 +1,67 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 1.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:blaze_rod" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 1.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:nether_wart" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/creeper.json b/data/minecraft/loot_tables/entities/creeper.json new file mode 100644 index 0000000..7f13fbd --- /dev/null +++ b/data/minecraft/loot_tables/entities/creeper.json @@ -0,0 +1,81 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:gunpowder" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:gravel" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:tag", + "name": "minecraft:creeper_drop_music_discs", + "expand": true + } + ], + "conditions": [ + { + "condition": "minecraft:entity_properties", + "predicate": { + "type": "#minecraft:skeletons" + }, + "entity": "killer" + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/evoker.json b/data/minecraft/loot_tables/entities/evoker.json new file mode 100644 index 0000000..dc31f05 --- /dev/null +++ b/data/minecraft/loot_tables/entities/evoker.json @@ -0,0 +1,45 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:totem_of_undying" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 1.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:diamond" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/husk.json b/data/minecraft/loot_tables/entities/husk.json new file mode 100644 index 0000000..bb6d7e8 --- /dev/null +++ b/data/minecraft/loot_tables/entities/husk.json @@ -0,0 +1,54 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:sand" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "name": "minecraft:dead_bush" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_looting", + "chance": 0.025, + "looting_multiplier": 0.01 + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/magma_cube.json b/data/minecraft/loot_tables/entities/magma_cube.json new file mode 100644 index 0000000..7429c83 --- /dev/null +++ b/data/minecraft/loot_tables/entities/magma_cube.json @@ -0,0 +1,50 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": -2.0, + "max": 1.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:magma_cream" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ancient_debris" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_looting", + "chance": 0.015, + "looting_multiplier": 0.01 + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/shulker.json b/data/minecraft/loot_tables/entities/shulker.json new file mode 100644 index 0000000..767a395 --- /dev/null +++ b/data/minecraft/loot_tables/entities/shulker.json @@ -0,0 +1,31 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 1.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:shulker_shell" + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/witch.json b/data/minecraft/loot_tables/entities/witch.json new file mode 100644 index 0000000..30f206b --- /dev/null +++ b/data/minecraft/loot_tables/entities/witch.json @@ -0,0 +1,183 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "min": 1.0, + "max": 3.0, + "type": "minecraft:uniform" + }, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:glowstone_dust" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:sugar" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:redstone" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:spider_eye" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:glass_bottle" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:gunpowder" + }, + { + "type": "minecraft:item", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:stick" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:brown_mushroom" + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/zombie.json b/data/minecraft/loot_tables/entities/zombie.json new file mode 100644 index 0000000..0dcb8ec --- /dev/null +++ b/data/minecraft/loot_tables/entities/zombie.json @@ -0,0 +1,89 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:rotten_flesh" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot" + }, + { + "type": "minecraft:item", + "name": "minecraft:potato" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_looting", + "chance": 0.025, + "looting_multiplier": 0.01 + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:clay_ball" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ] +} diff --git a/data/minecraft/loot_tables/entities/zombified_piglin.json b/data/minecraft/loot_tables/entities/zombified_piglin.json new file mode 100644 index 0000000..4b37ef3 --- /dev/null +++ b/data/minecraft/loot_tables/entities/zombified_piglin.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 1.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:rotten_flesh" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 2.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:netherrack" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0.0, + "max": 1.0, + "type": "minecraft:uniform" + } + }, + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0.0, + "max": 1.0 + } + } + ], + "name": "minecraft:gold_nugget" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot" + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_looting", + "chance": 0.025, + "looting_multiplier": 0.01 + } + ] + } + ] +} diff --git a/data/minecraft/tags/functions/load.json b/data/minecraft/tags/functions/load.json new file mode 100644 index 0000000..ce6186a --- /dev/null +++ b/data/minecraft/tags/functions/load.json @@ -0,0 +1,5 @@ +{ + "values": [ + "bktsb:init" + ] +} diff --git a/data/minecraft/tags/functions/tick.json b/data/minecraft/tags/functions/tick.json new file mode 100644 index 0000000..a2b774c --- /dev/null +++ b/data/minecraft/tags/functions/tick.json @@ -0,0 +1,7 @@ +{ + "values": [ + "bktsb:tradertrades", + "bktsb:booklistener", + "bktsb:structgen/helpers/amethyst/ray_tick" + ] +} |